Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算oracle游标中的记录数_Oracle_Cursor_Package_Procedure - Fatal编程技术网

计算oracle游标中的记录数

计算oracle游标中的记录数,oracle,cursor,package,procedure,Oracle,Cursor,Package,Procedure,我需要知道oracle游标(过程的输出参数)的记录数 游标在Oracle包的主体上声明,是一种类型is REF cursor 在过程2(相同的包)内部,我调用过程1并获得输出游标 我需要循环这个输出游标并计算记录的数量。我已经测试了很多示例,但是,任何示例都有效 谢谢,如果不进行迭代,就不可能获得游标的计数。光标就像指向数据的指针,而不是数据本身。所以,如果您需要计数,您必须循环直到光标%notfound。这里有类似于cursor%ROWCOUNT的内容,但是上面说: 可以附加到游标或游标变量名

我需要知道oracle游标(过程的输出参数)的记录数

游标在Oracle包的主体上声明,是一种类型is REF cursor

在过程2(相同的包)内部,我调用过程1并获得输出游标

我需要循环这个输出游标并计算记录的数量。我已经测试了很多示例,但是,任何示例都有效


谢谢,

如果不进行迭代,就不可能获得游标的计数。光标就像指向数据的指针,而不是数据本身。所以,如果您需要计数,您必须循环直到
光标%notfound
。这里有类似于
cursor%ROWCOUNT
的内容,但是上面说:

可以附加到游标或游标变量名称的游标属性。当光标打开时,%ROWCOUNT为零。在第一次提取之前,游标名称%ROWCOUNT返回0。此后,它返回到目前为止获取的行数。如果最新获取返回一行,则该数字将递增


因此,获取计数的唯一方法是执行
选择count(*)from--与游标中的条件相同,或者循环游标(获取所有数据)然后检查
%rowcount
或仅为每个游标记录增加变量,但最快的方法可能是从游标大容量获取所有记录,并使用
%rowcount

不迭代就无法获取游标计数。光标就像指向数据的指针,而不是数据本身。所以,如果您需要计数,您必须循环直到
光标%notfound
。这里有类似于
cursor%ROWCOUNT
的内容,但是上面说:

可以附加到游标或游标变量名称的游标属性。当光标打开时,%ROWCOUNT为零。在第一次提取之前,游标名称%ROWCOUNT返回0。此后,它返回到目前为止获取的行数。如果最新获取返回一行,则该数字将递增


因此,获取计数的唯一方法是执行
选择count(*)from--与游标中的条件相同,或者循环游标(获取所有数据)然后检查
%rowcount
或仅为每个游标记录增加变量,但最快的方法可能是从游标大容量获取所有记录并使用
%rowcount

请显示一些相关代码。“select count(*)…”有什么问题?要计算游标的记录数,需要从该游标读取(获取)所有记录。光标就像java中的一个文件(流)——您必须阅读整个文件才能知道该文件的多行。请显示一些相关代码。“select count(*)…”有什么问题?要计算游标的记录数,需要从该游标读取(获取)所有记录。光标就像java中的一个文件(流)——您必须读取整个文件才能知道该文件的许多行。