A>패키지
1.패키지란
연관성이 높은 함수나 프로시저를 묶어놓은 그룹
PL/SQL 이나 복합 유형의 데이터
함수나 프로시져 등이
패키지라는 그룹으로 묶여있다.
2.구성
선언부와 몸체부로 구성된다.
2-1 . 선언부
함수나 프로시져, 변수 등의 정의 선언 부분
B.사용
문형
선언부
CREATE PACKAGE 패키지 이름
IS
함수, 프로시저 ,변수 등의 선언부
END 패키지 이름;
몸체부
CREATE PACKAGE BODY 패키지 이름
IS
실제 실행문 구현부
END 패키지 이름
C> 삭제
둘다 할수도 있고
둘 중 하나만 할 수도 있다.
DROP PACKAGE package_name ;
DROP PACKAGE BODY package_name ;
D> 예시
1) 예시1
--패키지 선언부 생성
CREATE OR REPLACE PACKAGE emp_total
AS
PROCEDURE emp_sum;
PROCEDURE emp_avg;
END emp_total;
/
--패키지 몸체부 생성
CREATE OR REPLACE PACKAGE BODY emp_total
AS
PROCEDURE emp_sum IS
CURSOR emp_total_sum IS
SELECT COUNT(*),SUM(NVL(sal,0))
FROM emp;
total_num number;
total_sum number;
BEGIN
OPEN emp_total_sum;
FETCH emp_total_sum INTO total_num, total_sum;
DBMS_OUTPUT.PUT_LINE('총인원수: '||total_num||' , 급여합계: '||total_sum);
CLOSE emp_total_sum;
END emp_sum;
PROCEDURE emp_avg IS
CURSOR emp_total_avg IS
SELECT COUNT(*) ,AVG(NVL(sal,0))
FROM emp;
total_num number;
total_avg number;
BEGIN
OPEN emp_total_avg;
FETCH emp_total_avg INTO total_num, total_avg;
DBMS_OUTPUT.PUT_LINE('총인원수: '||total_num||' , 급여평균: '||total_avg);
CLOSE emp_total_avg;
END emp_avg;
end emp_total;
/
--결과 실행
EXEC emp_total.emp_sum;
EXEC emp_total.emp_avg;
E>생성된 패키지 조회하기
1.선언부 조회
SELECT text FROM user_source
WHERE type ='PACKAGE';
2.몸체(BODY) 조회
SELECT text FROM user_source
WHERE type LIKE 'PACKAGE BODY';
'DB관련 > oracle' 카테고리의 다른 글
CONNECT BY 사용하기 (0) | 2023.11.07 |
---|---|
서브 프로그램 4 - 트리거 (TRIGGER) (0) | 2021.01.21 |
서브 프로그램 - 내장함수(FUNCTION) (0) | 2021.01.21 |
서브 프로그램 - 프로시져(PROCEDURE) (0) | 2021.01.21 |
예외와 예외처리 (0) | 2021.01.21 |