728x90

Pragma Autonomous_Transaction 사용방법

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

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;


반응형

+ Recent posts