최근 포토로그


Pragma Autonomous_Transaction 사용방법 MSSQL과 ORACLE

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;

 

덧글

  • 굴스 2011/03/15 10:13 # 답글

    잘 봤습니다..
    맨날 찾아 쓰고 또 까묵고 또 찾고.. 반복이네요.. --;
  • 청석 2014/01/29 08:21 # 삭제 답글

    잘 보고 갑니다.
    건강하세요.
  • 성훈 2014/11/24 14:27 # 삭제 답글

    잘보고 갑니다^^

    혹시 퍼가도 될까요?
  • 나기드 2014/11/25 09:50 #

    제꺼는 퍼가는거 환영입니다.
  • 나기드 2014/11/25 09:50 #

    제가 블로그에 잘 안오기 때문에 맘껏 퍼세용.
  • 성훈 2014/11/25 21:04 # 삭제 답글

    감사합니다~_~
  • 너형 2017/12/28 09:04 # 삭제 답글

    안녕하세요 오라클의 자율트랜잭션의 기능을 알려주셨는데
    혹시 mssql에도 자율트랜잭션이 있을까요?
댓글 입력 영역