패키지 : 프로시저 또는 함수 등 서브 프로그램을 하나로 묶어놓은 객체. 패키지는 컴파일을 거쳐서 실행되며, 다른 패키지를 참조, 실행할 수 있다.
패키지 장점:
모듈화 - 함수와 프로시저 등 서브 프로그램을 한 곳에 모아서 사용할 수 있으므로 관리 및 사용이 수월하다.
캡슐화 - 선언부만 외부에 공개되고, 본문은 감춰져 있기 때문에 접근을 제어하여 오용을 방지한다.
성능 - 패키지의 서브 프로그램 호출 시 패키지 전체가 메모리에 올라가 호출 시 더 나은 성능을 보인다.
패키지 선언부(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>
'공부 > 데이터베이스' 카테고리의 다른 글
[oracle] 오라클 PL/SQL 예외처리(Exception) (0) | 2022.10.25 |
---|---|
[oracle] 프로시저, 함수 (1) | 2022.10.24 |
[ORACLE] 시퀀스 (0) | 2022.10.24 |
[데이터베이스] 오라클 CASE WHEN 표현식 (0) | 2022.06.15 |
[데이터베이스] mysql에서 text와 varchar의 차이 (0) | 2022.03.02 |