더북(TheBook)

패키지 선언부에 nt_dep_name이란 중첩 테이블 타입의 컬렉션을 생성했고 다시 이 컬렉션에 대한 변수를 선언했다. 그리고 패키지 변수에 값을 넣기 위한 프로시저도 선언했다. 이제 패키지 본문을 작성해 보자.

입력

    CREATE OR REPLACE PACKAGE BODY ch12_col_pkg IS
      -- 선언한 중첩 테이블에 데이터 생성 프로시저
      PROCEDURE make_dep_proc ( p_par_id IN NUMBER)
      IS
      BEGIN
        -- 부서 테이블의 PARENT_ID를 받아 부서명을 가져온다.
        FOR rec IN ( SELECT department_name
                       FROM departments
                      WHERE parent_id = p_par_id )
      LOOP
        -- 중첩 테이블 변수 EXTEND
        pv_nt_dep_name.EXTEND();
        -- 중첩 테이블 변수에 데이터를 넣는다.
        pv_nt_dep_name( pv_nt_dep_name.COUNT) := rec.department_name;

        END LOOP;
      END make_dep_proc;
    END ch12_col_pkg;

결과

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