더북(TheBook)

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

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