2014년 2월 3일 월요일

CURSOR FOR LOOP는 Explicit CURSOR안에 있는 모든 Row들을 처리한다.[오라클PLSQL커서란, 커서종류] 오라클자바커뮤니티 SQL강좌교육

CURSOR FOR LOOP는 Explicit CURSOR안에 있는 모든 Row들을 처리한다.[오라클PLSQL커서란, 커서종류] 오라클자바커뮤니티 SQL강좌교육

따라서 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 ;

댓글 없음:

댓글 쓰기