첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170
SET SERVEROUTPUT ON;

DECLARE
    -- 직원 테이블을 조회하는 커서를 정의한다.
    CURSOR EMPLOYEE_CURSOR IS
        SELECT *
        FROM   SCOTT.EMP
        ORDER BY ENAME;
    
    -- 직원 커서의 레코드 타입을 항목으로 갖는 연관 배열 타입을 정의한다.
    TYPE EMPLOYEE_ARRAY_TYPE IS TABLE OF EMPLOYEE_CURSOR%ROWTYPE INDEX BY BINARY_INTEGER;

    -- 직원 연관 배열 타입의 변수를 정의한다.
    V_EMPLOYEE_ARRAY EMPLOYEE_ARRAY_TYPE;
    
    -- 연관 배열을 조작하는 인덱스 변수를 정의한다.
    V_CURRENT_INDEX BINARY_INTEGER;
    V_LAST_INDEX    BINARY_INTEGER;
BEGIN
    -- 직원 커서를 조회해 직원 연관 배열 데이터를 설정한다.
    FOR EMPLOYEE_RECORD IN EMPLOYEE_CURSOR
    LOOP
        V_EMPLOYEE_ARRAY(EMPLOYEE_RECORD.EMPNO) := EMPLOYEE_RECORD;
    END LOOP;
    
    -- 연관 배열 데이터를 출력한다.
    V_CURRENT_INDEX := V_EMPLOYEE_ARRAY.FIRST;
    V_LAST_INDEX    := V_EMPLOYEE_ARRAY.LAST;
    
    LOOP
        DBMS_OUTPUT.PUT_LINE(V_EMPLOYEE_ARRAY(V_CURRENT_INDEX).ENAME);

        EXIT WHEN V_CURRENT_INDEX >= V_LAST_INDEX;
        
        V_CURRENT_INDEX := V_EMPLOYEE_ARRAY.NEXT(V_CURRENT_INDEX);
    END LOOP;
END;
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요