【发布时间】:2019-01-05 04:57:54
【问题描述】:
我想将查询的结果集存储到某个临时位置(听说过游标),然后使用循环根据值测试每一列。我试过了
Declare r_rec mytable%ROWTYPE;
BEGIN
select * into r_rec from mytable where column='20190103';
/*IF need to test certain condition for each column.
Then
V_C:=V_C+1;
end if; */
end;
/
如果让您感到困惑,我很抱歉。我的要求是检查一组记录的任何列是否包含 0,如果我需要递增以获取任何列中包含 0 的行数。我可以查询它,但我必须输入所有 200 列,我正在寻找一种替代方法,我可以测试选择查询的每条记录,以检查获取的任何记录中的任何列是否为 0。
很抱歉没有正确发布我的问题。
【问题讨论】:
-
为什么不使用带有
WHERE子句的UPDATE语句来定义应该更新哪些行?我不明白在这种情况下需要光标 -
如果您正在测试某个条件,为什么不将其作为查询的一部分而不是在循环中呢?您将如何处理满足和不满足条件的行?您可能正在寻找collections,但不清楚...如果您只是计算有多少行符合条件,那么您可能只需要一个简单的聚合
count(*),它不需要PL/SQL完全没有。