nickjoIT

CURSOR LOOP 본문

DB/oracle

CURSOR LOOP

nickjo 2017. 5. 26. 16:31

DECLARE

  --명시적 커서 선언(매개변수 전달)

  CURSOR c1(p_deptno NUMBER,

            p_job VARCHAR2)

  IS

    SELECT *

      FROM emp

     WHERE deptno=p_deptno

       AND job=p_job;

  

  --커서 c1과 같은 레코드 타입 선언

  emp_rec c1%ROWTYPE;

BEGIN

  --방법1. 커서 OPEN, LOOP, FETCH, CLOSE를 이용한 데이터 추출

  --커서 오픈(매개변수 전달)

  OPEN c1(30,'SALESMAN');

  

  --커서 내 데이터 반복 추출

  LOOP

    --커서 결과를 c1%ROWTYPE 변수에 입력

    FETCH c1 INTO emp_rec;

    

    --커서 내 추출 데이터가 없을 경우 LOOP 빠져나감

    EXIT WHEN c1%NOTFOUND;

    

    --데이터 처리

    DBMS_OUTPUT.PUT_LINE('Name=' || emp_rec.ename ||

                          ', salary=' || emp_rec.sal ||

                          ', Job Id=' || emp_rec.job);    

  END LOOP;

  

  CLOSE c1;

END;

/

'DB > oracle' 카테고리의 다른 글

CURSOR UPDATE  (0) 2017.05.26
CURSOR FOR LOOP  (0) 2017.05.26
단 한건만 반화하는 명시적 커서의 예  (0) 2017.05.26
커서(Cursor) For Loop  (0) 2017.05.26
For Loop  (0) 2017.05.26
Comments