日期:2014-05-17  浏览次数:20900 次

cursor 结果集的count数
我open一个cursor后,想知道结果集一共有几条记录,如果不用loop循环cursor,怎样获得呢

看了%rowcount好像只返回当前结果的num

------解决方案--------------------
引用:
fetch one more column : COUNT(1) OVER() Total_Num when you define your cursor.
SQL code?12345678910FOR rec_current_cursor in your_current_cursor LOOP  ...     IF running time > xxtime TH……


一个不错的思路!利用分析函数,在每一行上得到一个结果集总数的列,然后在游标中使用.

BEGIN
    FOR I IN (SELECT EMP.*,COUNT(1) OVER() AS TOTAL FROM EMP) LOOP
      DBMS_OUTPUT.PUT_LINE(I.TOTAL);
    END LOOP;
END;