版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ytfy12/article/details/82885164
MOM系统有个自动分配货品的程序,在增加新功能的时候,发现预期的计算分配数量和想象中不同。
测试多次,纸上验算和实际不同,最后怀疑是游标里面使用变量,而变量似乎在游标打开后就不变了。
举例说明:
DECLARE
L_qty NUMBER :=100;
CURSOR cur1 IS SELECT ROWNUM row_num,L_qty*10 qty10 FROM dual CONNECT BY ROWNUM<=2;
BEGIN
FOR rec IN cur1 LOOP
L_qty :=L_qty-1;
dbms_output.put_line(rec.row_num);
dbms_output.put_line(L_qty);
dbms_output.put_line(rec.qty10);
END LOOP;
END;
rec.qty10是不是不随着原始变了减少而减小,总是1000.
此处大坑,聊以记录