- 패키지 작성 지침
1) Spec은 Body 앞에 정의한다.
2) Spec은 공용 생성자만 포함해야 한다.
3) 세션이나 트랜잭션 전체에서 유지 관리해야 할 경우 Body 선언 부분에 해당 항목을 배치한다.
4) Spec이 변경될 때 참조 서브 프로그램을 재 컴파일 할 필요성을 줄인다.
5) Spec은 생성자를 가능한 한 적게 포함해야 한다.
- PL/SQL 서브 프로그램 오버로드
동일한 이름의 서브 프로그램을 두 개 이상 생성할 수 있다. 다만 파라미터가 달라야 한다. 또한 독립 형 서브 프로그램은 오버로드를 하지 않는다.
- Package의 지속 상태
1) 패키지가 처음으로 적재될 때 초기화 된다.
2) 세션 기간 동안 지속된다.
3) UGA(User Global Area)에 저장되고, 세션마다 고유하다.
4) 서브 프로그램이 호출되거나 공용 변수가 수정 시 변경될 수 있다.
5) Spec에서 PRAGMA SERIALLY_REUSABLE을 사용할 경우 세션 동안 지속되는 대신 서브 프로그램이 호출되는 동안 지속된다.
- 상수 및 예외 표준화
상수와 예외는 일반적으로 Body가 없는 패키지, 즉 Package Spec만을 사용하여 구현된다.
1) 표준화의 이점
- 일관성 있는 프로그램 개발
- 보다 높은 수준으로 코드 재사용 증진
- 간편한 코드 유지 관리
- 전체 응용 프로그램에서 회사 표준 구현
2) 표준화 대상 : 예외 이름, 상수 정의
3) 예외 표준화 : 응용 프로그램에 사용될 명명된 예외 및 사용자 정의 예외가 모두 포함된 표준화된 오류 처리 패키지를 생성한다.
CREATE OR REPLACE PACKAGE error_pkg IS e_fk_err EXCEPTION; e_seq_nbr_err EXCEPTION; PRAGMA EXCEPTION_INIT (e_fk_err, -2292); PRAGMA EXCEPTION_INIT (e_seq_nbr_err, -2277); ... END error_pkg; / |
4) 상수 표준화 : 값을 변경하면 안 되는 로컬 변수를 사용하는 프로그램의 경우, 변수를 상수로 변환하여 유지 관리와 디버깅 작업을 줄인다. 하나의 Spec을 생성한 후 이 안에 모든 상수를 배치한다.
CREATE OR REPLACE PACKAGE constant_pkg IS c_order_received CONSTANT VARCHAR(2) := 'OR'; c_order_shipped CONSTANT VARCHAR(2) := 'OS'; c_min_sal CONSTANT NUMBER(3) := 900; END constant_pkg; |
'PL SQL' 카테고리의 다른 글
PL/SQL 개관 - 2 (중첩 블록 및 PL/SQL에서 사용 가능한 SQL) (0) | 2016.07.07 |
---|---|
PL/SQL 개관 - 1 (정의, 특징, 장점, Block의 종류) (0) | 2016.07.07 |
PL/SQL 패키지 (Package) - 2 (Spec, Body 생성 방법) (0) | 2016.07.07 |
PL/SQL 패키지 (Package) - 1 (정의, 이점) (0) | 2016.07.07 |
PL/SQL 함수(Function) - 2 (표현식의 일부로 사용되는 함수, SQL문장 함수 사용 제한 사항) (0) | 2016.07.07 |