2014년 1월 9일 목요일

CURSOR FOR LOOP 예제[재직자무료교육/프로그래머교육/구로디지털IT교육,오라클/자바/닷넷/C#/iOS/안드로이드/아이폰교육]

CURSOR FOR LOOP 예제[재직자무료교육/프로그래머교육/구로디지털IT교육,오라클/자바/닷넷/C#/iOS/안드로이드/아이폰교육]

CURSOR FOR LOOP는 Explicit CURSOR안에 있는 모든 Row들을 처리한다.




따라서 CURSOR의 FETCH문에서 모든 데이터를 처리하기 위해 %NOTFOUND속성을 이용해야 하는 경우에 사용하면 유용하다.
 

이 CURSOR는 내부적으로 OPEN되고, FETCH되고 나서 루프를 나가면 CLOSE되기 때문에 DECLARE절에서 선언만 하고 사용하면 된다.


또한 CURSOR

의 데이터를 읽어 올 변수를 선언할 필요가 없다.
 

 

FOR record명 IN cursor명 LOOP
  문장1;
  문장2;
    ...
END LOOP;

 

 

CREATE OR REPLACE PROCEDURE  show_emp

IS  CURSOR empcursor IS

SELECT name, salary

FROM s_emp ;

BEGIN

DBMS_OUTPUT.PUT_LINE('이 름 '||' 급 여 '||'  직 책 ');

DBMS_OUTPUT.PUT_LINE('--------------------');

FOR emprecord IN  empcursor LOOP

DBMS_OUTPUT.PUT_LINE(emp_record.name||'

 '||emp_record.salary) ;

END LOOP;

 

/*emp_cursor%ROWCOUNT; CURSOR FOR LOOP는 END LOOP로
CLOSE되므로

처리 불가능*/

END ;

/
 




댓글 없음:

댓글 쓰기