안녕하세요.
프로시져 패키지의 트랜잭션이 궁금해서 질문 좀 드립니다...
하나의 패키지에 각각 데이터를 계산하는 하위프로시져가 있고
(아래처럼 PROC_RESOURCE_20004T 이런것들..)
대장프로시져 PROC_TOTAL_SUM 에서 하위프로시져들을 콜하는 형태로 저렇게 만든다면, 트랜잭션은 어떻게 되는지 궁금합니다.
각각의 하위프로시져 속에서 commit도하고 EXCEPTION WHEN OTHERS 일때 rollback도 하는데..
하위프로시져에서만 익셉션 처리하고 대장PROC_TOTAL_SUM 에서는 익셉션 처리할 필요 없는지요?
아니면 단순하게 봐서, 이 대장PROC_TOTAL_SUM 에서 하위프로시져 호출하는 모든것들이 하나의 세션이니까 대장PROC_TOTAL_SUM에서만 익셉션 처리해주면 될까요?
CREATE OR REPLACE PACKAGE BODY NMAS_SSG.PKG_SUMMARY
AS
----------------------------------------------------------------------------------
-- CREATOR : 홍길동
-- ALTER DATE : 2017.01.17
-- DESC : 서머리
-- HISTORY : 1. CREATE (2017.01.17, 홍길동)
----------------------------------------------------------------------------------
PROCEDURE PROC_TOTAL_SUM (
I_YYYYMM IN VARCHAR2
)
IS
BEGIN
PROC_RESOURCE_20004T ('201612');
PROC_RESOURCE_20021T ('201612');
PROC_RESOURCE_20020T ('201612');
PROC_RESOURCE_20002T ('201612');
PROC_RESOURCE_20008T ('201611');
PROC_RESOURCE_20001T ('201612');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RETURN;
END;
------------------------------------------------------------------------------
-- CREATOR : 홍길동
-- ALTER DATE : 2017.01.17
-- DESC : 집계 프로시져
-- HISTORY : 1. CREATE (2017.01.17, 홍길동)
------------------------------------------------------------------------------
PROCEDURE PROC_RESOURCE_20004T (
I_YYYYMM IN VARCHAR2
)
IS
BEGIN
어쩌고
...
저쩌고 insert
...
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RETURN;