더북(TheBook)

반면 패키지 선언부가 아닌 패키지 본문에서도 상수나 변수를 선언해 값을 할당할 수 있는데, 이 경우에는 외부에서 이 상수나 변수를 참조할 수 없고, 오직 해당 패키지 내에서만(패키지에 속한 서브 프로그램) 참조하거나 값을 변경할 수 있다. 그럼 ch12_var 패키지 본문에서 상수와 변수를 선언해 보자.

입력

    CREATE OR REPLACE PACKAGE BODY ch12_var IS
      -- 상수선언
        c_test_bodyCONSTANT VARCHAR2(10) := 'CONSTANT_BODY';

        -- 변수선언
        v_test_bodyVARCHAR2(10);

    END ch12_var;

결과

    PACKAGE BODY CH12_VAR이(가) 컴파일되었습니다.

이제 외부에서 위 상수와 변수를 참조하도록 익명 블록을 만들어 보자.

입력

    BEGIN
     DBMS_OUTPUT.PUT_LINE('ch12_var.c_test_body = '|| ch12_var.c_test_body);

     DBMS_OUTPUT.PUT_LINE('ch12_var.v_test_body = '|| ch12_var.v_test_body);
    END;

결과

    ORA-06550: 줄 2, 열61:PLS-00302: 'C_TEST_BODY' 구성 요소가 정의되어야 합니다.
    ORA-06550: 줄 4, 열61:PLS-00302: 'V_TEST_BODY' 구성 요소가 정의되어야 합니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.