프로시저를 실행해 보자.

    입력

        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건이 입력됐음을 알 수 있을 것이다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.