패키지

수호천사임다·2024년 9월 26일

오라클

목록 보기
52/53
post-thumbnail

패키지란?

  • 오라클에 저장되어 있는 서로 관련 있는 PL/SQL 프로시저, 함수, 타입등을 논리적으로 묶어 놓은 집합 이다.
  • 패키지는 선언부와 본문으로 나눈다.
  • 패키지 내에서는 프로시저, 함수는 오버로딩(중복 정의)이 가능하다.

오버로딩

  • 매개변수의 개수나 타입이 다르면 동일한 이름으로 프로시저나 함수를 여러 개 정의할 수 있는데, 이를 오버로딩이라 한다.
  • 오버로딩은 패키니 내에서 만 가능하다.

패키지 목록 확인

SELECT * FROM user_objects WHERE object_type = 'PACKAGE';
SELECT * FROM user_objects WHERE object_type = 'PACKAGE BODY';

패키지 내의 프로시저, 함수 목록 확인

SELECT * FROM user_procedures WHERE object_type = 'PACKAGE';

패키지 생성

  • 선언 절은 패키지에 포함될 PL/SQL 프로시저나, 함수, 커서, 변수, 예외 절을 선언 한다.
  • 패키지 선언부에서 선언한 모든 요소들을 패키지 전체에 적용 된다.

형식

CREATE [OR REPLACE] PACKAGE 패키지명 IS
	[ 변수 선언 절 ]
	[ 커서 선언 절 ]
	[ 예외 선언 절 ]
	[ 함수 선언 절 ]
	[ 프로시저 선언 절 ]
END 패키지명; 
  • 함수 선언 절 : FUNCTION 함수명[(인수)] RETURN 리턴타입;
  • 프로시저 선언 절 : PROCEDURE 프로시저명 [(인수)]

패키지 삭제

형식

CCREATE [OR REPLACE] PACKAGE BODY 패키지명 is
	[함수 구현]
    [프로시저 구현]
    ...
END 패키지명;

패키지 몸체 구현

함수 구현 형식

FUNCTION 함수먕[(인수)] RETURN 리턴타입
IS
	[변수선언]
BEGIN
	함수몸체구현
    RETURN 리턴값;
END;

프로시저 구현 형식

PROCEDURE 프로시저명[(인수)]
IS
	[변수선언]
BEGIN
	프로시저몸체구현
END;

패키지 내 프로시저나 함수 실행

  • 패키지내의 함수나 프로시저 실행은 패키지 명 다음에 점(.)을 찍고 프로시저나 함수 명을 적어준다.
EXEC 패키지명.프로시저명(인수);

패키지 삭제

  • 선언부와 몸체 삭제
DROP PACKAGE 패키지명;
  • 몸체 삭제
DROP PACKAGE BODY 패키지명; 

0개의 댓글