더북(TheBook)

02 | 패키지 해부

패키지 구조

패키지 선언부

앞에서 설명했듯이 패키지는 선언부 와 본문으로 구성된다. 선언부Specification 는 스펙 혹은 명세라고도 하는데, 패키지에서 사용할 사용자 정의 타입, 변수, 상수, 예외, 그리고 서브 프로그램의 골격을 선언해 놓는 부분으로 그 구문은 다음과 같다.

패키지 선언부 구문
    CREATE OR REPLACE PACKAGE 패키지명 IS
      TYPE_구문;
      상수명 CONSTANT 상수_타입;
      예외명 EXCEPTION;
      변수명 변수_타입;
      커서 구문;
     
      FUNCTION 함수명(매개변수1 IN 매개변수1_타입,
                        매개변수2 IN 매개변수2_타입,
                        ... )
        RETURN 반환 타입;
     
      PROCEDURE 프로시저명(매개변수1 [IN, OUT, INOUT] 매개변수1_타입,
                              매개변수2 [IN, OUT, INOUT] 매개변수2_타입,
                              ... );
    ...
     
    END 패키지명;

패키지 선언부는 크게 데이터와 서브 프로그램 영역으로 나눌 수 있다. 데이터 영역은 03. 패키지 데이터 절에서 자세히 다루도록 하고, 여기서는 서브 프로그램 영역에 집중해 설명하겠다. 서브 프로그램에는 함수와 프로시저가 있는데, 패키지 선언부에서는 이 두 객체의 명세, 즉 서브 프로그램명과 매개변수를 명시한다(함수는 반환 타입까지 명시해야 한다). 해당 패키지 소유자 외의 다른 사용자는 선언부의 내용만 볼 수 있지만, 사용하려는 함수나 프로시저에 대해 필요한 모든 정보(서브 프로그램명, 매개변수 개수와 타입, 반환 타입)를 참조할 수 있으므로 사용하는데 전혀 문제가 없다.

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