我正在尝试更改For循环中上限的值,但循环运行直到在起始中定义的上限。
根据逻辑循环应该是无限的,因为v_num的值总是先于i,但循环执行三次。请解释
这是代码
DECLARE
v_num number:=3;
BEGIN
FOR i IN 1..v_num LOOP
v_num:=v_num+1;
DBMS_OUTPUT.PUT_LINE(i ||' '||v_num);
END LOOP;
END;
Ouput Coming
1 4
2 5
3 6
答案 0 :(得分:7)
答案 1 :(得分:1)
答案 2 :(得分:0)
虽然通常认为改变循环变量的值是个坏主意,但有时这似乎是唯一的方法。但是,您可能会发现循环已经过优化,这可能就是这里发生的事情。
答案 3 :(得分:0)
没有什么能阻止语言设计者说“for循环的上限只被评估一次”。这似乎是plsql遵循的规则。