【问题标题】:Call plsql procedure with out parameter = null使用 out 参数调用 plsql 过程 = 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 个错误案例:

  1. arg3 => arg3 错误:应该声明 arg3 的 id
  2. arg3 => :arg3 错误:ora-01008
  3. arg3 => 输出号码 错误:ora-06550
  4. arg3 => 空 错误:pls-00306

如何使用 arg3 参数从 sql 窗口调用过程,该参数等于 null?

【问题讨论】:

    标签: sql oracle plsql plsqldeveloper


    【解决方案1】:

    因为它是一个OUT 参数,所以您必须有“一些东西”才能将该值放入其中。一种选择是局部变量:

    declare
      l_out number;                       --> why NUMBER? You said so
    begin
      someProcedure(arg1 => 22222,
                    arg2 => 0,
                    arg3 => l_out);       --> use it here
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-08
      • 2019-09-18
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多