Background Image
질의작성
2015.12.31 23:13

ORACLE TRIGGER를 CUBRID TRIGGER로 변환하기

조회 수 6460 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
279 질의작성 synonym에 대하여 김민종 2023.09.07 257
278 질의작성 VALUES 절 활용하기 황영진 2020.05.13 814
277 질의작성 입력된 날자를 이용하여 해당 주차의 모든 날자 구하기 성진 2018.04.10 1108
276 질의작성 JAVA_SP를 이용해서 정규표현식을 이용해서 치환을 하자. file 성진 2017.10.10 1325
275 운영관리 CUBRID 8.2.2 ~ 8.4.x 버전에서 'ALTER SERIAL ... CACHE <cached_num> / NOCACHE' ERROR 해결 방법 주영진 2017.03.08 2161
274 운영관리 윈도우 OS에서 java sp 사용 시 Java VM is not running 해결 방법 정훈 2017.09.04 2229
273 운영관리 CUBRID 브로커와 시스템 메모리 정만영 2019.03.12 2368
272 질의작성 loose index scan을 활용한 효과적인 쿼리 튜닝 방안 박세훈 2017.06.01 2409
271 응용개발 CUBRID 와 DBCP의 관계 엄기호 2016.12.14 2795
270 기타 JBoss 사용 시 statement pooling 설정 손승일 2016.12.16 2924
269 질의작성 테이블 명세서 쿼리 1 성진 2017.08.04 3173
268 질의작성 subquery를 이용한 튜닝예제 file 김창휘 2016.12.27 3322
267 응용개발 CUBRID PHP 드라이버 빌드와 연동방법 정만영 2018.03.07 3763
266 질의작성 Cubrid는 어떤 쿼리를 동일한 쿼리로 판단할까? 이상신 2015.12.30 4010
265 질의작성 스키마 및 인덱스 선언에 따른 최대 용량 산정을 위한 ROW SIZE 확인 성진 2016.03.21 4178
264 운영관리 큐브리드 마스터 소켓 디렉토리 변경방법 정만영 2016.07.05 4218
263 운영관리 cubrid plandump ( plan cache정보확인) file 주현 2015.12.29 4300
262 운영관리 Invalid XASL tree node content 에러 손승일 2016.04.26 4477
261 응용개발 Windows에서 32bit 버전의 PHP 설치 후 CUBRID와 연동 실패 시 해결 방법 file 진우진 2016.03.28 4523
260 마이그레이션 CMT를 이용하여 원본 특정 테이블의 일부 데이터만 가져와 대상 테이블에 넣기 엄기호 2016.01.28 4558
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

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