8. 패키지(Package)
8.1 개요 및 기본문법
-
패키지란? 연관성 있는, 논리적으로 연관된 PL/SQL Types, 변수, 서브프로그램(프러시저, 패키지)의 그룹이며 오라클의 스키마 오브젝트이다. 패키지 명세(Specification)와 패키지 바디(Body)로 나뉘어지며 바디는 생략도 가능하다.
-
패키지 명세는 Create Package 명령으로, 패키지 바디는 Create Package Body 명령으로 작성한다. 패키지 명세에서 정의한 서브프로그램 및 변수들만 외부에서 접근, 호출 가능하다.
-
패키지 명세 : 전역변수, 커서, 예외, PL/SQL 프로그램에 대한 선언
-
패키지 바디 : 패키지 명세에서 정의한 모든 커서, 서브프로그램을 구현[장점]
-
모듈화 : 연관된 타입, 서브프로그램들을 PL/SQL 모듈안에 캡슐화
-
쉬운 응용프로그램 디자인 : 패키지 명세를 통한 커서, 예외, 함수나 프로시저의 구조를 정의하고 이를 먼저 컴파일하는 것이 가능하다.
-
정보의 숨김 : 패키지를 통해 타입, 서브프로그램 등을 PUBLIC, PRIVATE으로 정의가능 하다.
-
기능 추가의 용이 : 패키지 명세에서 정의한 커서 or 예외, PUBLIC 변수들은 세션동안 유효하므로 이것들을 활용한 새로운 기능의 추가가 용이하다.
-
성능 향상 : 패키지안의 프로시저등이 최초 호출될 때 전체 패키지가 메모리에 로드 되므로 이후 호출 부터는 DISK I/O는 없다.[형식]
[패키지 명세]
CREATE [OR REPLACE] PACKAGE PACKAGE_NAME IS
[variable declaration]
[cursor declaration]
[exception declaration]
[procedure declaration]
[function declaration]
END;
[패키지 바디]
CREATE [OR REPLACE] PACKAGE BODY [PACKAGE_NAME] IS
[variable declaration]
[cursor implementation]
[exception implementation]
[procedure bodies]
[function bodies]
END;
-- 아래 간단히 패키지 Helloworld를 만들어
보자.
SQL> create or replace package pkgtest
2 is
3 procedure p_test(p_name
varchar2);
4 end;
5 /
SQL> create or replace package body
pkgtest
2 is
3 procedure p_test(p_name
varchar2)
4 is
5 begin
6 dbms_output.put_line('HelloWorld
' || p_name);
7 end;
8 end pkgtest;
9 /
SQL> set serveroutput on
SQL> exec pkgtest.p_test('오라클자바커뮤니티')
HelloWorld 오라클자바커뮤니티
PL/SQL 처리가
정상적으로 완료되었습니다.
댓글 없음:
댓글 쓰기