더북(TheBook)

함수를 만들었으니 호출해 보자. 이 테이블 함수는 커서를 매개변수로 받으므로 다음과 같이 CURSOR 표현식을 사용해 SELECT문을 커서 타입으로 변환해 직접 테이블 함수의 매개변수로 전달해서 사용할 수 있다.

입력

    SELECT *
      FROM TABLE( fn_ch14_table2 ( CURSOR ( SELECT * FROM EMPLOYEES WHERE ROWNUM < 6)
                               ));

결과

    VARCHAR_COL1        VARCHAR_COL2        NUM_COL DATE_COL
    ------------------- ------------------- -------------------
    William Smith       011.44.1343.629268  171 2000-02-23
    Elizabeth Bates     011.44.1343.529268  172 2000-06-24
    Sundita Kumar       011.44.1343.329268  173 2001-06-21
    Ellen Abel          011.44.1644.429267  174 1998-05-11
    Alyssa Hutton       011.44.1644.429266  175 1999-09-19

CURSOR 표현식 내부의 쿼리에서 6개 이하의 행을 조회하라는 조건(ROWNUM< 6)을 주었으므로 사원 테이블에서 총 5건의 데이터를 선택한 후 커서로 넘겨 이를 다시 컬렉션 변수에 담은 결과가 출력되었다.

테이블 함수는 문자나 숫자 같은 단일형 데이터 타입이 아닌 테이블 형태의 2차원 데이터 타입인 컬렉션을 반환하고, 이 반환된 결과는 TABLE 함수를 이용하면 직접 SELECT문에서 사용할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.