Background Image
질의작성
2015.12.31 23:13

ORACLE TRIGGER를 CUBRID TRIGGER로 변환하기

조회 수 6458 추천 수 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 질의작성 한건의 데이타를 여러건으로 조회하는 쿼리입니다. 권호일 2012.03.30 9419
278 운영관리 한 호스트내의 DB경로 변경 방법 janus 2010.02.19 12267
277 CUBRID 매니저 한 개 PC에서 CUBRID7.3과 CUBRID2008R1.4 & R2.0 매니저 사용 방법 1 정만영 2009.12.12 13054
276 응용개발 패키지 형태로 생성된 JAVA class를 JAVA SP에서 사용하기 손승일 2010.02.26 18375
275 기타 테이블에 comment 사용하기 1 남재우 2010.01.01 21051
274 질의작성 테이블 컬럼 변경 및 추가 정만영 2016.02.29 21826
273 질의작성 테이블 용량 산정 쿼리 성진 2015.12.08 7394
272 운영관리 테이블 사용량 확인방법 정만영 2015.02.03 11447
271 CUBRID 매니저 테이블 명세서 한 시트로 합치기 file 성진 2015.12.24 16522
270 질의작성 테이블 명세서 쿼리 1 성진 2017.08.04 3165
269 질의작성 테이블 리스트 취합 SQL 김창휘 2016.03.19 5522
268 질의작성 테이블 데이터 복사 하기 정만영 2009.03.14 22301
267 마이그레이션 타 DBMS를 CUBRID로 마이그레이션 시 varchar,char 컬럼 사이즈 관련 손승일 2010.07.01 38024
266 마이그레이션 타 DB 에서 마이그레이션시 질의 변경 샘플 - CASE 문 웁쓰 2009.12.31 21924
265 운영관리 큐브리드와 hostname 관계 정만영 2009.06.25 18583
264 운영관리 큐브리드매니져를 이용한 데이터베이스 자동 백업 남재우 2009.04.01 19052
263 운영관리 큐브리드 포트 정리 정만영 2016.07.05 6090
262 운영관리 큐브리드 서비스 재구동 시 cubrid manager server start: fail 오류 해결 방법 진우진 2015.12.16 7730
261 운영관리 큐브리드 사용포트 정리 3 정만영 2009.06.19 29775
260 운영관리 큐브리드 복제 구성 시 마스터 데이터베이스 백업 주의사항 정만영 2010.02.11 12591
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