如何在for循环中存储先前的值和当前值

时间:2015-06-11 03:29:37

标签: sql oracle plsql

我有一个光标C1,它从表格测试中选择列状态。

使用for循环,我必须检查状态的先前值是ERROR,状态的当前值是VALID。如果是,那么我必须更新表{{1} }。

E.G。

test1

请帮助我如何存储for循环的先前值和当前值以进行比较。

3 个答案:

答案 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;