Oracle

[오라클SQL과PLSQL을다루는기술] 12. 패키지

지금이니! 2020. 7. 18. 16:42

PL/SQL 타입, 변수, 상수, 서브 프로그램, 커서, 예외 등의 항목을 묶어 놓은 객체

 

장점

 1) 모듈화

 2) 설계 용이

 3) 캡슐화

 4) 성능

    - 패키지내의 서브프로그램을 호출하면 우선 해당 패키지 전체를 메모리에 올려두기 때문

 

패키지 구조

 - 선언부

 - 본문

 

선언부

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 패키지명;

 

본문

CREATE OR REPLACE PACKAGE BODY 패키지명 IS

  상수명 CONSTANT 상수_타입;

  변수명 변수_타입;

  커서 정의 구문;

 

  FUNCTION 함수명(매개변수1 IN 매개변수1_타입,

                           매개변수2 IN 매개변수2_타입

                          ...)

    RETURN 반환 타입 IS

  ...

  BEGIN

  ...

  END 함수명;

 

  PROCEDURE 프로시저명(매개변수1 [IN, OUT, INOUT] 매개변수1_타입,

                                  매개변수2 [IN, OUT, INOUT] 매개변수2_타입,

                                  ...)

  IS

...

  BEGIN

...

  END 프로시저명;

...

END 패키지명;

 

상수와 변수 선언

 - 패키지 선언부에 상수나 변수를 선언하게 되면 외부에서 접근하고 수정할 수 있으며, 세션단위로 메모리에 값을 유지한다. Public Item

 - 본문에 선언하면 외부에서 참조하거나 값을 변경할 수 없다. Private Item

 

* 유용한 시스템 패키지