목록프로시져 (2)
고코딩
AUTONOMOUS TRANSACTION, 독립적인 트랜잭션 프로시저에서 프로시저를 호출하고 또 프로시저에서 프로시저를 호출하면서 점점 TRANSACTION의 위치가 애매해지기 시작했다. 그래서 프로시저마다 독립적인 트랜잭션을 할당해 줄수는 없을까 싶어서 찾아보다가 AUTONOMOUS TRANSACTION을 발견하였다. AUTONOMOUS TRANSACTION이란? 블록에서 자신의 작업을 수행하기 위해서 그 블록의 고유의 트랜잭션을 생성하는 경우에 해당하며 그 불록의 트랜잭션의 결과가 자신을 포함하거나 호출한 트랜잭션에의 상태에 의해 영향을 받지 않는 속정을 가지는 트랜잭션을 의미한다. 마스터 트랜잭션과는 lock, resource, commit에 관련된 의존성을 가지지 않는다. 테스트를 통해서 살펴보자..
오라클 프로시져 ROLLBACK COMMIT 기준 프로시져를 작성하던 중 EXCEPTION 발생시 ROLLBACK을 해야하는 경우가 생겼다. 근데 프로시져의 ROLLBACK의 기준을 알고 싶었다. ROLLBACK을 만나면 프로시져가 수행한 모든 명령문들이 프로시져 수행 전으로 돌아가는 건지 아니면 가장 최근 COMMIT 내역으로 돌아가는지 궁금했다. 참고로 COMMIT ROLLBACK은 다 트랜잭션 단위를 기준으로 하는 데이터 상태를 나타낼때 사용된다. 결론 결론 부터 말하자면 정답은 *ROLLBACK을 만나면 가장 최근에 COMMIT된 상태로 돌아간다. * 예제 코드를 보면서 이해해 보자 설명 TEMP.TABLE CREATE TABLE TEMP( TEMP_ID NUMBER, TEMP_NO VARCHAR..