오라클 패키지(Package), ONE TIME ONLY PROCEDURE, 전위적 선언(Forward Declaration),
http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=584
8. 오라클 패키지(Package)
8.1 개요 및 기본문법
n 패키지란? 연관성 있는, 논리적으로 연관된 PL/SQL 타입(Types), 변수(Variable), 서브프로그램(프러시저, 함수)의 그룹이며 오라클 스키마 오브젝트이다. 패키지 명세(Specification)와 패키지 바디(Body)로 나뉘어지며 바디는 생략 가능하다.
n 패키지 명세는 Create Package 명령으로, 패키지 바디는 Create Package Body 명령으로 작성한다.
n 패키지 명세에서 정의한 서브프로그램 및 변수, 타입만 외부에서 접근, 호출 가능하다.
n 패키지 명세 : 타입, 전역변수, 커서, 예외, PL/SQL 프로그램에 대한 선언
n 패키지 바디 : 패키지 명세에서 정의한 모든 커서, 서브프로그램을 구현
[장점]
n 모듈화 : 연관된 타입, 서브프로그램들을 PL/SQL 모듈안에 캡슐화
n 쉬운 응용프로그램 디자인 : 패키지 명세를 통한 커서, 예외, 함수나 프로시저의 구조를 정의하고 이를 먼저 컴파일하는 것이 가능하다.
n 정보의 숨김 : 패키지를 통해 타입, 서브프로그램 등을 PUBLIC, PRIVATE으로 정의가능 하다.
n 기능 추가의 용이 : 패키지 명세에서 정의한 커서 or 예외, PUBLIC 변수들은 세션동안 유효하므로 이것들을 활용한 새로운 기능의 추가가 용이하다.
n 성능 향상 : 패키지안의 프로시저등이 최초 호출될 때 전체 패키지가 메모리에 로드 되므로 이후 호출 부터는 DISK I/O는 없다.
[형식]
8.2 전위적 선언(Forward Declaration)
n 동일한 PL/SQL블록에 여러 개의 Sub Program들이 올 수 있는데 어떤 프러시저/함수에서 다른 프로시저/함수를 호출할 때 호출당하는 프러시저/함수는 먼저 선언 되어야 한다. 먼저 선언하지 않으려면 호출하는 프러시저/함수의 앞쪽에 만들면 된다.
8.3 ONE TIME ONLY PROCEDURE
n 객체지향 프로그래밍의 초기화블록 처럼 패키지에서도 초기화 블록이 존재하는데 패키지내 함수나 프로시저가 최초 호출될 때 딱한번 호출되는 BEGIN~END 절을 만들 수 있는데 이를 One Time Only 프로시저라고 하고 주로 패키지내에서의 초기화 작업을 수행한다.
n 패키지 바디의 맨 뒤쪽에 기술한다.
[LAB]
댓글 없음:
댓글 쓰기