패키지 선언부에 커서 전체를 선언하는 형태
11장에서 배웠던 방식 그대로 커서에 대한 쿼리를 포함한 명시적 커서 정의 부분 전체를 패키지 선언부에서 선언해 사용할 수 있다. 일반 PL/SQL 블록이나 서브 프로그램에서 사용했던 방식과 동일하다.
입력
CREATE OR REPLACE PACKAGE ch12_cur_pkg IS
-- 커서 전체 선언
CURSOR pc_empdep_cur ( dep_id IN DEPARTMENTS.DEPARTMENT_ID%TYPE ) IS
SELECT a.employee_id, a.emp_name, b.department_name
FROM employees a, departments b
WHERE a.department_id = dep_id
AND a.department_id = b.department_id;
END ch12_cur_pkg;
결과
PACKAGE CH12_CUR_PKG이(가) 컴파일되었습니다.
이제 패키지 커서를 사용해 보자. 커서 역시 변수처럼 패키지 선언부에서 선언하면 공용이 되어 “패키지명.커서명” 형태로 참조할 수 있다.
입력
BEGIN
FOR rec IN ch12_cur_pkg.pc_empdep_cur(30)
LOOP
DBMS_OUTPUT.PUT_LINE(rec.emp_name || ' - ' || rec.department_name);
END LOOP;
END;
결과
Den Raphaely - 구매/생산부
Alexander Khoo - 구매/생산부
Shelli Baida - 구매/생산부
Sigal Tobias - 구매/생산부
Guy Himuro - 구매/생산부
Karen Colmenares - 구매/생산부