프로시저를 실행해 보자.
입력
EXEC iud_ch10_sales_proc ( '199901');
SELECT COUNT(*)
FROM ch10_sales ;
결과
COUNT(*)
----------
151
결과를 보면 151건이 입력되었음을 알 수 있는데, SQL*Plus나 SQL Developer를 다시 실행해서 조회해보자.
입력
SELECT COUNT(*)
FROM ch10_sales ;
결과
COUNT(*)
----------
0
프로시저 실행 후 첫 번째 쿼리에서 확인했을 때는 151건이었으나 다른 창을 띄우고 확인하니 0건이다. 그 이유는 COMMIT문을 실행하지 않았기 때문인데, 같은 세션에서 확인한 첫 번째 쿼리에서는 결과 값이 151건으로 나왔지만 DB에 최종적으로 반영이 안 된 상태여서 다른 편집기나 창에서 확인하면 0건이 나오는 것이다. 그럼 COMMIT을 추가하고 컴파일 후 실행해 보자.
입력
CREATE OR REPLACE PROCEDURE iud_ch10_sales_proc
( p_sales_month ch10_sales.sales_month%TYPE )
IS
BEGIN
...
...
COMMIT;
END;
결과
PROCEDURE IUD_CH10_SALES_PROC이(가) 컴파일되었습니다.
입력
<span class="c1">-- 테이블 초기화</span>
TRUNCATE TABLE ch10_sales;
EXEC iud_ch10_sales_proc ( '199901');
결과
익명 블록이 완료되었습니다.
입력
SELECT COUNT(*)
FROM ch10_sales ;
결과
COUNT(*)
----------
151
이제 다른 창에서 확인해보더라도 151건이 입력됐음을 알 수 있을 것이다.