본문 바로가기

IT/오라클

Oracle PL/SQL 강좌 6.2.3. 명시적 커서의 속성(Explicit Cursor Attributes)

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
    

태그

문서에 대하여

  • - 강좌 URL : http://www.gurubee.net/lecture/1066
  • - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
  • 구루비의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.