ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • autonomous 트랜잭션
    개발 관련/ORACLE 2013. 1. 10. 11:45

    autonomous 트랜잭션메인 트랜잭션에 영향을 주지 않고 서브 트랜잭션만 따로 커밋하는 기능


    PRAGMA AUTONOMOUS_TRANSACTION;


    -- 프로시저 생성

    CREATE OR REPLACE PROCEDURE LOG_MESSAGE( P_MESSAGE VARCHAR2 )
    AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        -- 자율 트랜잭션
        -- 부모 트랜잭션의 승인/롤백 여부에 상관없이 자신의 작업을 승인하거나 롤백할 수 있다.
    BEGIN
        INSERT INTO LOG_TABLE( USERNAME, DATE_TIME, MESSAGE )
                      VALUES ( USER, CURRENT_DATE, P_MESSAGE );
        COMMIT;
    END LOG_MESSAGE;

    -- 테이블 생성
    CREATE TABLE LOG_TABLE( USERNAME VARCHAR2(30),
                            DATE_TIME TIMESTAMP,
                            MESSAGE VARCHAR2(4000) );

    CREATE TABLE TEMP_TABLE( N NUMBER );


    -- 프로시저 실행
    BEGIN
        LOG_MESSAGE('INSERT INTO TEMP_TABLE');

        INSERT INTO TEMP_TABLE VALUES(12345);

        LOG_MESSAGE('ROLLBACK INSERT');

        ROLLBACK;
    END;


    출처: http://nagid.egloos.com/2597143


     

     

     

    '개발 관련 > ORACLE' 카테고리의 다른 글

    오라클에서 dmp 파일로 export 또는 import 하기  (0) 2010.08.11
    PRIMARY KEY 변경 방법  (0) 2010.04.29
Designed by Tistory.