最近尝试了一次while跑数,
declare
sysdataend date:=system-1;
startdata date:=to_date('20181214','YYYYMMDD');
begin
while(startdata<sysdataend)
loop
-- 需要执行循环的过程
startdata:=startdata+1;
loop end;
end;
测试中发现system-1 的当天也会被计算,那么从结构上来看应该是while后面的条件先执行,那么system-1那天是不应该计算的。
但测试结果表示system-1如果在执行过程里面进行打印,是会被打印出来的。那么就表示,while后面的条件,是在loop后再进行判断的。
使用的时候需要注意这一点,不然会出现多数