对PLSQL的cursor 的rowcount 的理解

开始

rowcount 并不是定义或open了cursor,就是固定的值,它随着每次fetch而累计:

--INDEX BY Table

SET SERVEROUTPUT ON;



DECLARE

  v_empno emp.empno%TYPE;

  v_ename emp.ename%TYPE;

  

  CURSOR emp_cursor IS

  SELECT empno,ename from emp where empno<>1000;

  

BEGIN



LOOP



  IF NOT emp_cursor%ISOPEN  THEN

     OPEN emp_cursor;

  END IF; 

  

  FETCH emp_cursor INTO  v_empno,v_ename; 

  EXIT WHEN emp_cursor%NOTFOUND;

   

  dbms_output.put_line(
'rowcount is:'|| emp_cursor%ROWCOUNT || '-- empno is:' || v_empno || '-- emp name is:' || v_ename); END LOOP; END; /

运行结果:

anonymous block completed

rowcount is:1-- empno is:7369-- emp name is:SMITH

rowcount is:2-- empno is:7499-- emp name is:ALLEN

rowcount is:3-- empno is:7521-- emp name is:WARD

rowcount is:4-- empno is:7566-- emp name is:JONES

rowcount is:5-- empno is:7654-- emp name is:MARTIN

rowcount is:6-- empno is:7698-- emp name is:BLAKE

rowcount is:7-- empno is:7782-- emp name is:CLARK

rowcount is:8-- empno is:7788-- emp name is:SCOTT

rowcount is:9-- empno is:7839-- emp name is:KING

rowcount is:10-- empno is:7844-- emp name is:TURNER

rowcount is:11-- empno is:7876-- emp name is:ADAMS

rowcount is:12-- empno is:7900-- emp name is:JAMES

rowcount is:13-- empno is:7902-- emp name is:FORD

rowcount is:14-- empno is:7934-- emp name is:MILLER

结束

你可能感兴趣的:(Cursor)