【发布时间】:2018-05-15 16:00:08
【问题描述】:
我正在尝试将变量(“COUNT”)定义为查询的计数,以便稍后在我的 PLSQL 块中的条件语句中使用它。我使用以下语法得到计数:
Select count(value_tx) from value where trunc(date) = trunc(sysdate)
我目前知道如何做到这一点的唯一方法是使用光标。有一个更好的方法吗?我使用光标的方法如下:
Create or Replace Procedure TEST IS
CURSOR C1 is
select count(value_tx) as COUNTE
from value
where trunc(date) = trunc(sysdate)
group by hr_utc;
l_var c1%ROWTYPE;
BEGIN
Open c1;
FETCH c1 into l_var;
IF l_var.counte > 0 THEN DBMS_OUTPUT.PUT_LINE(l_var.COUNTE);
END IF;
Close c1;
END TEST;
提前致谢。
【问题讨论】:
-
取决于您还想对这些结果做什么。你只是想打印它们?您的代码没问题(您可以将其更改为 for 循环)。另一件事:您显示的是计数,而不是与之关联的 hr_utc 值,我认为这会有所帮助。否则,您将看到一些值,但不会看到与哪个组关联。
-
用 CASE 代替怎么样?