Oracle SQL的cursor理解

隐式游标中大写的"SQL"标识,如SQL%ROWCOUNT表示隐式游标有几行记录;显式游标由开发者自定义,也可以使用如C1%ROWCOUNT表示游标C1有几行记录。通常显式游标都是使用OPEN方式打开的。

使用显式定义的游标使用OPEN方式打开,它的使用方法如下例所示:

  1. set serveroutput on
  2. declare
  3. cursor c1 is
  4. select rownum ,table_name from user_tables where rownum < 10 ;
  5. v_rownum number ;
  6. v_tablename varchar2 ( 256 );
  7. begin
  8. open c1;
  9. dbms_output.put_line( ' 游标当前行数 1:' || c1% rowcount );
  10. loop
  11. fetch c1 into v_rownum,v_tablename;
  12. exit when c1% notfound ;
  13. dbms_output.put_line( ' 游标当前行 :' || c1% rowcount || ' table_name:' ||v_tablename);
  14. end loop ;
  15. dbms_output.put_line( ' 游标当前行数 2:' || c1% rowcount );
  16. close c1;
  17. end ;

在SQLPUS中执行,得到如下结果。

  1. 游标当前行数 1:0
  2. 游标当前行 :1 table_name:T_SS
  3. 游标当前行 :2 table_name:T_TARGET
  4. 游标当前行 :3 table_name:T_SS_NORMAL
  5. 游标当前行 :4 table_name:T_MYSTAT
  6. 游标当前行 :5 table_name:T_WXL_GETDATA_LOG
  7. 游标当前行 :6 table_name:ALL_OBJ
  8. 游标当前行 :7 table_name:DBA_OBJ
  9. 游标当前行 :8 table_name:T_RPT_XXX
  10. 游标当前行 :9 table_name:CMS_DOC_BODY
  11. 游标当前行数 2:9

相关推荐