PL / SQL Cursor行

时间:2016-07-26 10:53:45

标签: sql oracle plsql cursor

我有一个问题,我希望找到能帮助我的人: 我想计算光标返回的所有行到' IF' (使用计数器whitout因为我想在开始治疗之前知道一次行数。

要解释更多:我有一个包含测量值的表,我想知道测试(我的IF中的代码)是否返回了很多mesurements或Not。如果它返回One我想发送消息,否则我发送包含大量消息的消息。 谢谢

2 个答案:

答案 0 :(得分:0)

好像你需要使用SQL%ROWCOUNT。 查看https://docs.oracle.com/cloud/latest/db112/LNPLS/static.htm#CIHJJJDG了解更多信息。

答案 1 :(得分:0)

我认为这取决于“大量”测量的含义。尼尔斯曼的方法将为您提供您想要的答案。但是,如果您确实需要数据,则必须再次执行光标。

我可以想到两种方法可能会给你你想要的答案

  1. 使用BULK COLLECT打开光标。然后,您可以对提取的集合使用COUNT方法。但是通常我们会将任何时候收集的行数限制为最多几百。如果你的'很多'的定义大于几百,那么这种方法可能效率不高
  2. 使用分析函数COUNT(*)OVER()返回与查询的每一行一致的所有记录的计数。这意味着在第一次获取后,您将知道整个结果集的大小