【发布时间】:2021-11-03 20:37:27
【问题描述】:
我们如何在存储过程 - oracle 19c 的 for 循环中将值增加 0.25 而不是默认值 1?
另外,是否可以使用数字数组作为循环值?如果没有,请建议如何实施。
例如,
fctr1 - 传递 -4 作为 fct 并且 fctr1 需要增加 .25 直到 4
fctr2 - 5,7,10,14,15,21等非周期值的范围
CREATE OR REPLACE procedure sp_test
( fct in number )
is
BEGIN
for fctr1 in fct..4 ///increment by .25
loop
dbms_output.put_line(fctr1);
for fctr2 in ///range of non periodic values
loop
dbms_output.put_line(fctr2);
end loop;
end loop;
END;
/
【问题讨论】:
-
直到 21c 才添加增量步骤。所以你必须在循环中递增
-
或者你需要使用一些脑细胞。例如,要以 0.25 为增量从 3 循环到 5,您可以执行类似
for i in 12 .. 20 loop... 的操作,并在循环中使用i/4而不是i。
标签: oracle for-loop oracle19c nested-for-loop