패키지 선언부에 커서 전체를 선언하는 형태

    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 - 구매/생산부
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.