我只想在oracle循环中从0迭代到n-1,就像这样:
FOR X IN CLEEVECTOR LOOP
但我想知道是否可以使用条件:
if X = TOTALROWS - 1 then
exit;
END IF:
有一些推荐或解决方案? 感谢您帮我解决这个问题。
答案 0 :(得分:0)
因此,您希望处理除光标返回的最后一个值以外的所有值。由于光标不知道它将返回多少行,因此您只能说"如果这是倒数第二行"则中断。但是可以保存要处理的值,然后在下一次迭代中处理它,如
DECLARE
strLast_ID VARCHAR2(1000) := NULL;
CURSOR CLEEVECTOR IS
select regexp_substr(p_checkboxes,'[^,]+', 1, level) ID
from dual
connect by regexp_substr(p_checkboxes, '[^,]+', 1, level) is not null;
BEGIN
FOR X IN CLEEVECTOR LOOP
IF strLast_ID IS NOT NULL THEN
-- code to process strLast_ID
END IF;
strLast_ID := X.ID;
END LOOP;
END;
对此进行广泛的评论,以解释发生了什么事情,以便跟进之后能够弄清楚意图是什么。