我有一个光标C1,它从表格测试中选择列状态。
使用for
循环,我必须检查状态的先前值是ERROR
,状态的当前值是VALID
。如果是,那么我必须更新表{{1} }。
E.G。
test1
请帮助我如何存储for循环的先前值和当前值以进行比较。
答案 0 :(得分:0)
你会声明你的光标。 DECLARE一个变量来保存前一个值。(设置一个默认值,因为此时没有前一个)打开光标。 FETCH你的第一个记录。然后你将WHILE循环遍历其余的记录。在每个WHILE循环结束时,您将执行另一个FETCH。因此,您希望在获取下一条记录之前设置保存先前值的变量。
答案 1 :(得分:0)
由于你只提供了伪代码,我会给你我的伪代码给你的问题。请考虑以下事项:
for (var i = 0; i < $(".avatar").length; i++) {
//your code
}
'previous.status'在'END loop'之前设置为'current.status',以准备在下一个循环中使用它来获得新的current.status。必须在循环外声明存储先前和当前状态的变量。
答案 2 :(得分:0)
根据我的理解,这应该为您的工作做一些小改动:
declare
v_previous_status test.status%type;
cursor c1
is
select status
from test;
begin
open c1;
fetch c1 bulk collect into l_status;
for i in 1..l_status.count
if (v_previous = 'ERROR' and l_status(i) = 'VALID' ) then
update ....
end if;
v_previous := l_status(i);
end loop;
END;