PLSQL에서 COMMIT 질문입니다. 0 2 4,015

by 은술사 PL/SQL PLSQL COMMIT [2012.05.22 18:29:20]



PL/SQL에서 INSERT를 하고 UPDATE를 하고 있는데요

COMMIT을 트렌젝션 전체에 걸어주는게 아니라

INSERT 하고 있으면 INSERT하는곳에서만 COMMIT하는 방법이 있을까요?

여러개의 프로시저와 펑션을 이용하다 보니 COMMIT을 해버리면 전체가 커밋이 돼어버리네요


MAIN 
1
2
3
4 -------->PROCEDURE ( 4-1, 4-2 COMMIT , 4-3)
5
6 ROLLBACK
이런 상황에서 롤백을 해버리면 4-2지점으로 롤백이 돼야 하지만 처음부터 롤백이 돼는 상황입니다.. ㅠ
by 마농 [2012.05.22 18:48:01]

DML(Insert, Update, Delete)이 발생한 시점부터
Commit/Rollback 시점까지가 하나의 트랜젝션입니다.
하나의 트랜젝션 안에서 별도의 독립적인 트랜젝션을 수행 할 수 있는데.
다음 옵션을 주고 생성한 프로시져가 이에 해당합니다.
PRAGMA AUTONOMOUS_TRANSACTION


by 은술사 [2012.05.23 09:12:53]
감사합니다 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입