使用 out 参数调用 plsql 过程 = null
Posted
技术标签:
【中文标题】使用 out 参数调用 plsql 过程 = null【英文标题】:Call plsql procedure with out parameter = null 【发布时间】:2021-04-06 10:32:34 【问题描述】:我注意到从 PLSQL developer sql 窗口调用一个过程。 我的请求脚本是:
begin
someProcedure(arg1 => 22222,
arg2 => 0,
arg3 => arg3)
end
arg1 和 arg2 具有“in”类型,arg3 具有“out”类型。 程序声明如下:
procedure someProcedure(arg1 in number,
arg2 in number,
arg3 out number)
当我在测试窗口测试这个过程时,我可以只给出 arg1 和 arg2,让 arg3 像 arg3 := arg3,但是当我尝试使用上面的脚本从 sql 窗口调用过程时,我得到了关于变量声明的错误。
arg3 是可选参数,实际上我不知道它应该是什么。
这是我遇到的 3 个错误案例:
-
arg3 => arg3
错误:应该声明 arg3 的 id
arg3 => :arg3
错误:ora-01008
arg3 => 输出号码
错误:ora-06550
arg3 => 空
错误:pls-00306
如何使用 arg3 参数从 sql 窗口调用过程,该参数等于 null?
【问题讨论】:
【参考方案1】:因为它是一个OUT
参数,所以您必须有“一些东西”才能将该值放入其中。一种选择是局部变量:
declare
l_out number; --> why NUMBER? You said so
begin
someProcedure(arg1 => 22222,
arg2 => 0,
arg3 => l_out); --> use it here
end;
【讨论】:
以上是关于使用 out 参数调用 plsql 过程 = null的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PLSQL 过程中将绑定变量作为 IN OUT 参数传递