질의작성
2015.12.31 23:13

ORACLE TRIGGER를 CUBRID TRIGGER로 변환하기

조회 수 7305 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

ORACLE TRIGGER를 CUBRID로 변환한 예제이다.

특이 사항은  Oracle의 경우 한 TRIGGER 내에 여러 SQL를 사용할 수 있지만 CUBRID는 각각 분리하여 작성해야 한다.

또한 INSERT OR UPDATE로 생성된 TRIGGER도 각각 분리해야 한다.


<Oracle Trigger>


create or replace TRIGGER SOA.TR02_TN_SVC_PRCUSE_REQST_INFO


 


 AFTER    


    UPDATE ON SOA.TN_PUBR_SVC_PRCUSE_REQST_INFO         


    FOR EACH ROW


DECLARE


      PRAGMA AUTONOMOUS_TRANSACTION;  


      V_INSTT_CODE VARCHAR2(40) := '';


  


BEGIN


        SELECT INSTT_CODE INTO V_INSTT_CODE


        FROM    TN_PUBR_PUBLIC_DATA_DETAIL


        WHERE   PUBLIC_DATA_DETAIL_PK = :NEW.PUBLIC_DATA_DETAIL_PK;



    IF :NEW.DECSN_MATTER_CODE = 'PSDE02' AND (:NEW.PRCUSE_LMTT_CODE != 'PRCU01' OR :NEW.PRCUSE_LMTT_CODE IS NULL) AND V_INSTT_CODE = '9750000' THEN 



        -- 승인시 신규 회원테이블에 입력한다.          


            INSERT INTO SOAC.TN_PUBR_ATCH_FILE_MANAGE_CI


              (PBLONSIP_RESRCE_PK,


                  SEQ_NO,


                  ATCH_FILE_TY_CODE,


                  ATCH_FILE_ID,


                  ATCH_FILE_USE_AT)


           SELECT PUBLIC_DATA_DETAIL_PK,


                   SEQ_NO,


                   ATCH_FILE_TY_CODE,


                   ATCH_FILE_ID,


                   ATCH_FILE_USE_AT


             FROM SOA.TN_PUBR_ATCH_FILE_MANAGE


            WHERE PUBLIC_DATA_DETAIL_PK = :NEW.PUBLIC_DATA_DETAIL_PK;


       


        -- 오퍼레이션 권한


        INSERT INTO SOAC.TN_PUBR_OPRTIN_AUTHOR_CI


        SELECT  *


        FROM    SOA.TN_PUBR_OPRTIN_AUTHOR


        WHERE   PUBLIC_DATA_DETAIL_PK = :NEW.PUBLIC_DATA_DETAIL_PK


            AND MBER_ID = :NEW.MBER_ID;


     (이하 생략)


<CUBRID TRIGGER>


--create or replace TRIGGER SOA.TR02_TN_SVC_PRCUSE_REQST_INFO


create TRIGGER TR02_TN_SVC_PRCUSE_REQST_INFO1



AFTER UPDATE ON TN_PUBR_SVC_PRCUSE_REQST_INFO


--FOR EACH ROW


--DECLARE


--      PRAGMA AUTONOMOUS_TRANSACTION;


--      V_INSTT_CODE VARCHAR2(40) := '';



--BEGIN



--        SELECT INSTT_CODE INTO V_INSTT_CODE


--        FROM    TN_PUBR_PUBLIC_DATA_DETAIL


--        WHERE   PUBLIC_DATA_DETAIL_PK = :NEW.PUBLIC_DATA_DETAIL_PK;



    IF obj.DECSN_MATTER_CODE = 'PSDE02' AND (obj.PRCUSE_LMTT_CODE != 'PRCU01' OR obj.PRCUSE_LMTT_CODE IS NULL)


       AND '9750000' = (SELECT INSTT_CODE


                        FROM TN_PUBR_PUBLIC_DATA_DETAIL


                        WHERE PUBLIC_DATA_DETAIL_PK = obj.PUBLIC_DATA_DETAIL_PK)


       EXECUTE



       -- 승인시 신규 회원테이블에 입력한다.


            INSERT INTO SOAC.TN_PUBR_ATCH_FILE_MANAGE_CI


              (PBLONSIP_RESRCE_PK,


                  SEQ_NO,


                  ATCH_FILE_TY_CODE,


                  ATCH_FILE_ID,


                  ATCH_FILE_USE_AT)


           SELECT PUBLIC_DATA_DETAIL_PK,


                   SEQ_NO,


                   ATCH_FILE_TY_CODE,


                   ATCH_FILE_ID,


                   ATCH_FILE_USE_AT


             FROM TN_PUBR_ATCH_FILE_MANAGE


            WHERE PUBLIC_DATA_DETAIL_PK = obj.PUBLIC_DATA_DETAIL_PK;



COMMIT;



--create or replace TRIGGER SOA.TR02_TN_SVC_PRCUSE_REQST_INFO


create TRIGGER TR02_TN_SVC_PRCUSE_REQST_INFO2



AFTER UPDATE ON TN_PUBR_SVC_PRCUSE_REQST_INFO


--FOR EACH ROW


--DECLARE


--      PRAGMA AUTONOMOUS_TRANSACTION;


--      V_INSTT_CODE VARCHAR2(40) := '';



--BEGIN



--        SELECT INSTT_CODE INTO V_INSTT_CODE


--        FROM    TN_PUBR_PUBLIC_DATA_DETAIL


--        WHERE   PUBLIC_DATA_DETAIL_PK = :NEW.PUBLIC_DATA_DETAIL_PK;



    IF obj.DECSN_MATTER_CODE = 'PSDE02' AND (obj.PRCUSE_LMTT_CODE != 'PRCU01' OR obj.PRCUSE_LMTT_CODE IS NULL)


       AND '9750000' = (SELECT INSTT_CODE


                        FROM TN_PUBR_PUBLIC_DATA_DETAIL


                        WHERE PUBLIC_DATA_DETAIL_PK = obj.PUBLIC_DATA_DETAIL_PK)


       EXECUTE



        -- 오퍼레이션 권한


        INSERT INTO TN_PUBR_OPRTIN_AUTHOR_CI


         --SELECT  * /* 컬럼 추가 이슈 */


        SELECT  MBER_ID


               ,PUBLIC_DATA_DETAIL_PK


               ,OPRTIN_SEQ_NO


               ,USE_REQST_NO


               ,PROCESS_STTUS_CODE


               ,PROCESS_STTUS_DC


               ,DILY_USE_EXPECT_CO


               ,DILY_USE_CHANGE_RESN


               ,USE_TY


               ,PRCUSE_PURPS


               ,PRCUSE_URL


               ,PRCUSE_PRPOS


               ,PRCUSE_AGRE_AT


               ,OPRTIN_URL


               ,AUTHOR_ENNC


               ,USE_BEGIN_DATE


               ,USE_END_DATE


               ,REGISTER_ID


               ,REGIST_DT


               ,UPDUSR_ID


               ,UPDT_DT


               ,DILY_USE_CHANGE_RESN_CODE


               ,PRCUSE_REQST_SEQ_NO


               ,PRCUSE_LMTT_CODE


               ,PRCUSE_LMTT_RESN


        FROM    TN_PUBR_OPRTIN_AUTHOR


        WHERE   PUBLIC_DATA_DETAIL_PK = obj.PUBLIC_DATA_DETAIL_PK


            AND MBER_ID = obj.MBER_ID;



COMMIT;



List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
242 질의작성 각 테이블 PK 유무 확인 쿼리문 엄기호 2016.01.01 10277
» 질의작성 ORACLE TRIGGER를 CUBRID TRIGGER로 변환하기 김창휘 2015.12.31 7305
240 응용개발 CUBRID DB에서 critical section 정보 출력하기 file 주현 2015.12.31 6240
239 마이그레이션 MySQL 테이블 크기 조사하기-공유 주현 2015.12.31 7219
238 운영관리 CUBRID BACKUP (linux, window) file 박동윤 2015.12.30 7645
237 질의작성 Cubrid는 어떤 쿼리를 동일한 쿼리로 판단할까? 이상신 2015.12.30 4864
236 운영관리 브로커와 DB 간 연결 테스트 박동윤 2015.12.29 6298
235 응용개발 CUBRID HA 제약 사항 및 확인 방법 손승일 2015.12.29 6458
234 운영관리 cubrid plandump ( plan cache정보확인) file 주현 2015.12.29 5622
233 마이그레이션 CUBRID와 Oracle의 NULL과 '' (empty string)의 처리 차이점 1 권호일 2015.12.29 18045
232 마이그레이션 CM(CUBRID Manager)을 이용하여 행정표준코드시스템의 기관코드 가져오기 file 권호일 2015.12.28 7373
231 CUBRID 매니저 테이블 명세서 한 시트로 합치기 file 성진 2015.12.24 18479
230 질의작성 일정 범위 임의의 정수 생성 방법(random 함수 응용) 손승일 2015.12.22 7425
229 운영관리 시스템 부하가 많지 않음에도 불구하고 질의 수행이 느린 경우 THP 기능 설정 확인 및 해제 진우진 2015.12.16 8673
228 운영관리 큐브리드 서비스 재구동 시 cubrid manager server start: fail 오류 해결 방법 진우진 2015.12.16 9325
227 응용개발 maven에서 CUBRID JDBC Driver 추가하기 file 김승훈 2015.12.09 10928
226 질의작성 오라클의 DBMS_RANDOM.STRING() 함수를 CUBRID 식으로 구현하는 방법 이경오 2015.12.08 8774
225 질의작성 테이블 용량 산정 쿼리 성진 2015.12.08 8601
224 응용개발 WHERE 조건에서 다중 컬럼 IN절 처리 최적화 방법 (cubrid + ibatis) 1 이상신 2015.08.21 57444
223 운영관리 브로커 동적 파라미터 변경 방법 정만영 2015.08.13 8680
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5