cur_pric number;
未赋值就是nullproduct_inouttype_prc(cur_ctgyid,cur_pric);
进入第一个存储过程 传入了一个nullSYS.DBMS_OUTPUT.PUT_LINE('parmparm_pric的值是:'||parmparm_pric);
SYS.DBMS_OUTPUT.PUT_LINE('1-parmparm_pric的值是:'||(1-parmparm_pric));你打印的就是传入的nullif SQL%found then
parmparm_pric:=SQL%rowcount;
end if;这里类型inout的第二个参数被赋值为3
product_inouttype_prc(cur_ctgyid,cur_pric);
第一个存储过程结束 cur_pric获得传出的值:3if cur_pric>0 then
SYS.DBMS_OUTPUT.PUT_LINE('共修改'||cur_pric||'条记录。');
end if;因为你声明的是inout 所以product_inouttype_prc结束后,out类型的参数获得了值。
未赋值就是nullproduct_inouttype_prc(cur_ctgyid,cur_pric);
进入第一个存储过程 传入了一个nullSYS.DBMS_OUTPUT.PUT_LINE('parmparm_pric的值是:'||parmparm_pric);
SYS.DBMS_OUTPUT.PUT_LINE('1-parmparm_pric的值是:'||(1-parmparm_pric));你打印的就是传入的nullif SQL%found then
parmparm_pric:=SQL%rowcount;
end if;这里类型inout的第二个参数被赋值为3
product_inouttype_prc(cur_ctgyid,cur_pric);
第一个存储过程结束 cur_pric获得传出的值:3if cur_pric>0 then
SYS.DBMS_OUTPUT.PUT_LINE('共修改'||cur_pric||'条记录。');
end if;因为你声明的是inout 所以product_inouttype_prc结束后,out类型的参数获得了值。
解决方案 »
- java delete DB2 问题,高手进
- 跪地急求 oracle linux 双机热备 数据库 启动脚本 。
- 在pl/sql developer中哪里可以查看到oracle的所有关键词
- oracle 8i 与 oracle 9i 在更新数据的时候,些代码时有什么区别吗? 在线等待中。。。。
- merge into 的一个奇怪问题
- 显示中文的问题
- Ora-00984:列在此处不允许 是怎么回事??(在线等)
- sqlplus如何调用存储过程,谢谢
- Oracle8i之验证错误?
- 什么会导致ora04031错误
- DG主从轮转以后,switchover_status为not allow,如何解决?
- RATIO_TO_REPORT()OVER()函数如何解决百分比问题
我问了下度娘null的相关问题解答,找到一篇解说,然后我又结合我的表来比对,总算弄明白了。
原SQL语句:
update PRODUCTINFOLXX
set productprice=productinfolxx.productprice*(1-parmparm_pric)
where productinfolxx.category=parm_ctgyid;
其中1-parmparm_pric的值是null,productprice*null的结果还是null,实际上这条更新语句是把类型是洗衣机的产品价格更新成null了。Oracle中NULL的使用详解