我open一个cursor后,想知道结果集一共有几条记录,如果不用loop循环cursor,怎样获得呢看了%rowcount好像只返回当前结果的num
解决方案 »
- 谁知道我们做的是什么系统?
- 如何取出一个表中2个字段的组合的结果重复的所有的记录?
- 求助,如何在文字模式下在安装oracle 10g 的补丁程序for redhat linux as 4
- ORA-01653: unable to extend table CAT_TRAN_HISTORIES by 8497 in tablespace DAT
- 请教一个ORACLE表的UPDATE命令如何写?
- proc* c 在shell脚本不能的问题
- 请问Sequence对象有一个排序选项是什么意思?
- 今天去面试,几道不太会的8道题,各位帮看看,多谢
- 如何访问两个表空间
- 启动数据库出错怎么办呀?请各位大侠指点一下。
- Oracle安装后为什么找不到联机帮助文档
- oracle导入出错,求帮助。百度的方法不顶用 IMP-00017: 由于 ORACLE 错误 20000;IMP-00003: 遇到 ORACLE 错误
SELECT COUNT(1) FROM 你的游标定义可以得到。处理游标的时候 I++也可以统计ROWCOUNT确实是当前的。
我循环处理cursor的结果集,当运行时间大于某个时间时,我就跳出loop,所以我可以得到处理了多少条记录
但是我还想知道cursor中一共有多少
dbms_output.put_line("Total record : " || rec_current_cursor.COUNT(1));
IF running time > xxtime THEN
END IF;
END LOOP;
...
IF running time > xxtime THEN
fnd_file.put_line(fnd_file.log,
'Total Record Processed : ' || your_current_cursor%ROWCOUNT;
fnd_file.put_line(fnd_file.log,
'Total Record Fetched : ' || rec_current_cursor.Total_Num);
END IF;
END LOOP;
一个不错的思路!利用分析函数,在每一行上得到一个结果集总数的列,然后在游标中使用.BEGIN
FOR I IN (SELECT EMP.*,COUNT(1) OVER() AS TOTAL FROM EMP) LOOP
DBMS_OUTPUT.PUT_LINE(I.TOTAL);
END LOOP;
END;