728x90
반응형
[ 패키지 목차 ]
1. 패키지의 형식과 출력
1) 패키지의 형식
2) 출력을 위한 DBMS_OUTPUT 패키지
* 패키지 파트는 눈으로만 확인해봄
[ 1 ] 패키지의 형식과 출력
- 패키지의 사전적인 의미는 꾸러미이다.
- 관련 있는 프로시저를 보다 효율적으로 관리하기 위해서
패키지 단위로 배포할 때 유용하게 사용된다.
- 패키지는 패키지 선언(명세부)과 패키지 몸체 선언(몸체부)
두 가지 모두를 정의해야 한다.
1. 패키지의 형식
-- 형식
-- 패키지 선언(명세부)
CREATE [ OR REPLACE ] PACKAGE package_name
IS
PROCEDURE procedure_name1;
PROCEDURE procedure_name2;
END;
/
-- 패키지 몸체 선언(몸체부)
CREATE [ OR REPLACE ] PACKAGE BODY package_name
IS
PROCEDURE procedure_name1
IS
....
END;
END;
/
[ 실습 : 패키지 작성하기 ]
- 앞장에서 작성했던 저장 프로시저와 저장 함수로 구성된 패키지를 생성한다.
1. ED 다음에 파일이름을 입력하여 새로 생긴 SQL 파일에 다음과 같이 입력한다.(실습파 일:PACK01.SQL)
-- 실습 : 패키지 작성하기
CREATE OR REPLACE PACKAGE EXAM_PACK IS
FUNCTION CAL_BONUS(VEMPNO IN EMP.EMPNO%TYPE)
RETURN NUMBER;
PROCEDURE CURSOR_SAMPLE02;
END;
/
CREATE OR REPLACE PACKAGE BODY EXAM_PACK IS
FUNCTION CAL_BONUS(VEMPNO IN EMP.EMPNO%TYPE)
RETURN NUMBER
IS
VSAL NUMBER(7, 2);
BEGIN
SELECT SAL INTO VSAL
FROM EMP
WHERE EMPNO=VEMPNO;
RETURN (VSAL * 200);
END;
PROCEDURE CURSOR_SAMPLE02
IS
VDEPT DEPT%ROWTYPE;
CURSOR C1
IS
SELECT * FROM DEPT;
BEGIN
DBMS_OUTPUT.PUT_LINE('부서번호 / 부서명 / 지역명');
DBMS_OUTPUT.PUT_LINE('------------------------------------');
FOR VDEPT IN C1 LOOP
EXIT WHEN C1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(VDEPT.DEPTNO||' '||VDEPT.DNAME||' '||VDEPT.LOC);
END LOOP;
END;
END;
/
-- 패키지 실행하기
VARIABLE VAR_RES NUMBER;
EXECUTE :VAR_RES := EXAM_PACK.CAL_BONUS(7788);
-- 패키지 이름 EXAM_PACK에 있는 CAL_BONUS 함수를 가져와서 7788의 매개값을 넣은 함수 CAL_BONUS의 결과값 VAR_RES 변수에 넣어줘라.
PRINT VAR_RES;
EXECUTE EXAM_PACK.CURSOR_SAMPLE02;
2. 입력을 마쳤으면 저장하고 SQL 파일을 실행시키기 위해서 @PACK01를 입력합니다.
SQL 프롬프 트에서 패키지내의 프로시저나 함수를 직접 호출합시다.
SQL> @PACK01
패키지가 생성되었습니다.
패키지 본문이 생성되었습니다.
SQL> VARIABLE VAR_RES NUMBER;
SQL> EXECUTE :VAR_RES := EXAM_PACK.CAL_BONUS(7788);
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> PRINT VAR_RES;
VAR_RES
----------
600000
SQL> SET SERVEROUTPUT ON
SQL> EXECUTE EXAM_PACK.CURSOR_SAMPLE02;
부서번호 / 부서명 / 지역명
-----------------------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL>
2. 출력을 위한 DBMS_OUTPUT 패키지
- PL/SQL에서 조회한 결과값을 출력하기 위해서 DBMS_OUTPUT에 대한
자세한 설명 없이 DBMS_OUTPUT을 사용해왔다.
- 오라클을 설치하게 되면 특정 목적을 위해서 사용할 수 있도록 오라클 사에서
제공해주는 패키지들이 설치된다. 이러한 패키지에는 오라클에서 제공되는
프로시저와 함수들을 관련된 것끼리 묶어서 집합으로 제공한다.
CONN system/manager
DESC DBA_OBJECTS
SELECT OBJECT_NAME FROM DBA_OBJECTS
WHERE OBJECT_TYPE='PACKAGE'
AND OBJECT_NAME LIKE 'DBMS_%'
ORDER BY OBJECT_NAME;
728x90
반응형
'DataBase' 카테고리의 다른 글
NoSQL 간단 설명서 (2) | 2024.08.27 |
---|---|
23_데이터 모델링 (0) | 2022.12.22 |
21_ 저장 프로시저, 저장함수, 커서, 트리거 (0) | 2022.12.21 |
20_PL/SQL 기초 (4) | 2022.12.21 |
19_동의어 (0) | 2022.12.20 |