더북(TheBook)

마지막으로 매개변수로 사용할 커서 타입을 만들어야 하는데, “CREATE [OR REPLACE] TYPE” 구문으로 만들 수 있는 타입은 OBJECT 타입, 중첩 테이블, VARRAY에 한정되며 커서 타입은 생성할 수 없다. 11장에서 커서에 대해 다룰 때 커서 타입은 모두 익명 블록의 변수 선언부에 선언해 놓고 사용했는데, 이렇게 하면 익명 블록의 수행이 끝나면 사라져 버린다. 함수의 매개변수로 사라져 버리는 커서 타입을 사용할 수는 없는 일이다. 그렇다면 어떻게 해야 할까?

방법이 없는 것은 아니다. 패키지에 선언해 놓고 해당 패키지 타입을 참조해 사용하면 된다. 다음과 같이 패키지를 만들고 더불어 커서 타입도 선언해 보자.

입력

    CREATE OR REPLACE PACKAGE ch14_empty_pkg
    IS
      -- 사원 테이블에 대한 커서
      TYPE emp_refc_t IS REF CURSOR RETURN employees%ROWTYPE;

    END ch14_empty_pkg;

결과

    PACKAGE CH14_EMPTY_PKG이(가) 컴파일되었습니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.