공부/데이터베이스

[oracle] 패키지

ghhong 2022. 10. 24. 16:16

패키지 : 프로시저 또는 함수 서브 프로그램을 하나로 묶어놓은 객체. 패키지는 컴파일을 거쳐서 실행되며, 다른 패키지를 참조, 실행할 있다.

 

패키지 장점:

모듈화 - 함수와 프로시저 서브 프로그램을 곳에 모아서 사용할 있으므로 관리 사용이 수월하다.

캡슐화 - 선언부만 외부에 공개되고, 본문은 감춰져 있기 때문에 접근을 제어하여 오용을 방지한다.

성능 - 패키지의 서브 프로그램 호출 패키지 전체가 메모리에 올라가 호출 나은 성능을 보인다.

 

패키지 선언부(package definition): 어떤 함수 또는 프로시저가 있는지 정의한다.

함수 또는 프로시저의 이름, 매개변수, 반환 타입 등을 작성한다. 세부 사항은 패키지 본문(package body)에서 작성한다.

 

CREATE OR replace PACKAGE 패키지이름

AS

FUNCTION 함수이름

( 파라미터1이름 타입,

파라미터2이름 타입...)

RETURN 타입;

PROCEDURE 프로시저이름

( 파라미터명1 입출력 타입,

파라미터명1 입출력 타입...)

END 패키지이름;

 

패키지 본문(package body): 선언문에 작성한 함수, 프로시저들의 구체적 작업을 작성한다.

CREATE OR replace PACKAGE BODY 패키지이름

AS

FUNCTION 함수이름

( 파라미터명1 타입,

파라미터명2 타입...)

RETURN 타입

IS

변수 선언

BEGIN

실행문

RETURN 반환값;

END;

PROCEDURE 프로시저이름

( 파라미터명1 입출력타입 타입,

파라미터명2 입출력타입 타입...)

IS

변수 선언

BEGIN 실행문

RETURN 반환값;

END;

END 패키지이름;

 

 

패키지 실행:

SELECT 패키지이름.함수(파라미터값) FROM 테이블명;

또는

BEGIN 패키지이름.프로시저(파라미터); END;

 

출처: <https://fomaios.tistory.com/entry/Oracle-%ED%8C%A8%ED%82%A4%EC%A7%80Package%EB%9E%80-feat-CRUD>