6.2.3 명시적 커서의 속성(Explicit Cursor Attributes)

출처 http://www.gurubee.net/lecture/1066

Explicit Cursor 속성

%ISOPEN
  • – 커서가 OPEN되어 있으면 TRUE
  • – %ISOPEN속성을 이용하여 커서가 열려있는지 알 수 있다.
%NOTFOUND
  • – 패치한 데이터가 행을 반환하지 않으면 TRUE
  • – %NOTFOUND속성을 이용하여 루프를 종료 할 시점을 찾는다.
%FOUND
  • – 패치한 데이터가 행을 반환하면 TRUE
%ROWCOUNT
  • – 현재까지 반환 된 모든 데이터 행의 수
  • – %ROWCOUNT속성을 이용하여 정확한 숫자만큼의 행을 추출한다.

Explicit Cursor 속성 예제

 
SQL> CREATE OR REPLACE PROCEDURE AttrCursor_Test 
     IS
       v_empno     emp.empno%TYPE;
       v_ename     emp.ename%TYPE;
       v_sal       emp.sal%TYPE;

       CURSOR emp_list IS
       SELECT empno, ename, sal
       FROM emp;    
 
     BEGIN

       DBMS_OUTPUT.ENABLE;

       OPEN emp_list;   

       LOOP

         FETCH emp_list INTO v_empno, v_ename, v_sal;

         -- 데이터를 찾지 못하면 빠져 나갑니다
         EXIT WHEN emp_list%NOTFOUND;       
     
       END LOOP;    


       DBMS_OUTPUT.PUT_LINE('전체데이터 수 ' || emp_list%ROWCOUNT);
    
       CLOSE emp_list;
    
       EXCEPTION
         WHEN OTHERS THEN
         DBMS_OUTPUT.PUT_LINE('ERR MESSAGE : ' || SQLERRM);
        
    END; 
   / 

-- DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용 
SQL> SET SERVEROUTPUT ON ; 

-- 실행 결과
SQL> EXECUTE AttrCursor_Test;
전체데이터 수 15
    

답글 남기기 0

Your email address will not be published. Required fields are marked *