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

 -- 1. 레코드 (RECORD)

 -- 2. 컬렉션 (COLLECTION)


-- CURSOR

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

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

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


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


SET SERVEROUTPUT ON;

ACCEPT P_DEPT_NO PROMPT '원하는 부서를 입력하고 FOR..LOOP과 CURSOR를 이용하여 데이터를 추출해보아라.';


DECLARE 


    -- 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 와 IN 사이EMP_RECORD 의경우 임의로 작명해도된다. : EMP_CURSOR 의 값들을 담아놓은 객체라보면된다.

      FOR EMP_RECORD IN EMP_CURSOR LOOP

        DBMS_OUTPUT.PUT_LINE(EMP_RECORD.EMP_NM || '님의 레코드는 다음과 같습니다. 

        : ' || EMP_RECORD.EMP_NO || ' | ' || EMP_RECORD.EMP_ID || ' | ' || EMP_RECORD.DEPT_NO || ' | ' || EMP_RECORD.SAL );

      END LOOP;

END;

/

+ Recent posts