-- 조합 데이터 타입의 2가지 종류

 -- 1. 레코드 (RECORD)

 -- 2. 컬렉션 (COLLECTION)


-- CURSOR

-- 수행하는 SQL문의 결과를 처리하기 위한 메모리영역

 -- 1. 암시적 커서: SQL%rowcount와 같은 커서를 말한다.

 -- 2. 명시적 커서: 메모리를 올려놓고 빈곳에다가 올리고 싶은 데이터를 올린다. 


-- 2. CURSOR를 사용하지 않고 FOR LOOP을 사용하여 TB_LS_EMP867 테이블에서 레코드를 뽑아봐라


SET SERVEROUTPUT ON;


CREATE OR REPLACE PROCEDURE PR_EMP_TEST2

(P_DEPT_NO NUMBER)


IS

    -- CURSOR 명 : EMP_CURSOR

    -- EMP_CURSOR 에 조건에 맞는 TB_LS_EMP867 테이블에서 가져온 데이터들을 담아준다. 

    CURSOR EMP_CURSOR IS

    SELECT EMP_NO, EMP_NM, EMP_ID, DEPT_NO, SAL

    FROM TB_LS_EMP867

    WHERE DEPT_NO = P_DEPT_NO;

  

BEGIN

      -- CURSOR를 특별하게 사용하지 않고 FOR ..  LOOP을 돌려보자.

      FOR EMP_RECORD IN EMP_CURSOR LOOP

        DBMS_OUTPUT.PUT_LINE('================');

        DBMS_OUTPUT.PUT_LINE(EMP_RECORD.EMP_NM);

        DBMS_OUTPUT.PUT_LINE(EMP_RECORD.EMP_NO);

        DBMS_OUTPUT.PUT_LINE(EMP_RECORD.EMP_ID);

        DBMS_OUTPUT.PUT_LINE(EMP_RECORD.DEPT_NO);

        DBMS_OUTPUT.PUT_LINE(EMP_RECORD.SAL);

        DBMS_OUTPUT.PUT_LINE('================');

      END LOOP;

END;

/


EXEC PR_EMP_TEST2(82);



+ Recent posts