더북(TheBook)

프로시저를 실행해 보자.

입력

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

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