请问Oracle中存储过程参数有关问题
请教Oracle中存储过程参数问题本人刚开始学习Oracle不久,现在遇到个问题,很是困惑,希望知道的各位BOSS级人
请教Oracle中存储过程参数问题
本人刚开始学习Oracle不久,现在遇到个问题,很是困惑,希望知道的各位BOSS级人物能帮我解答下,在此先谢谢各位热心人了
下面是两个存储过程的语句,不用看的特别仔细,大体上知道是怎么个逻辑就可以了:
1、过程名:product_inouttype_prc
我的执行语句是:exec PRODUCT_CLINOUTTYPE_PRC('洗衣机');
[解决办法]cur_pric number;
未赋值就是null
product_inouttype_prc(cur_ctgyid,cur_pric);
进入第一个存储过程 传入了一个null
SYS.DBMS_OUTPUT.PUT_LINE('parmparm_pric的值是:'
[解决办法]parmparm_pric);
SYS.DBMS_OUTPUT.PUT_LINE('1-parmparm_pric的值是:'
[解决办法](1-parmparm_pric));
你打印的就是传入的null
if SQL%found then
parmparm_pric:=SQL%rowcount;
end if;
这里类型inout的第二个参数被赋值为3
product_inouttype_prc(cur_ctgyid,cur_pric);
第一个存储过程结束 cur_pric获得传出的值:3
if cur_pric>0 then
SYS.DBMS_OUTPUT.PUT_LINE('共修改'
[解决办法]cur_pric
[解决办法]'条记录。');
end if;
因为你声明的是inout 所以product_inouttype_prc结束后,out类型的参数获得了值。