-
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