[오라클SQL과PLSQL을다루는기술] 12. 패키지
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
* 유용한 시스템 패키지