Oracle:调用包内的存储过程

Posted

技术标签:

【中文标题】Oracle:调用包内的存储过程【英文标题】:Oracle: Call stored procedure inside the package 【发布时间】:2012-10-13 02:58:09 【问题描述】:

我对甲骨文了解不多。我使用 PL/SQL Developer。

我有以下包裹:

create or replace package PKG1
as
procedure INIT
(
  nRN                       in number,
  nREC_TYPE                 in number,
  nIDENT                    out number
);

我不确定如何从 PL/SQL Developer 环境中调用它。我试过这个:

DECLARE
  procId NUMBER;

BEGIN
  EXECUTE PKG1.INIT(1143824, 0, procId);
  DBMS_OUTPUT.PUT_LINE(procId);
END;

但是,存在 ORA-06550 (PLS-00103) 错误。

如您所见,我有 2 个输入和 1 个输出参数。我想打印输出参数。就是这样。

提前感谢您的帮助。

戈兰

【问题讨论】:

【参考方案1】:

你快到了,只需取出 EXECUTE:

DECLARE
  procId NUMBER;

BEGIN
  PKG1.INIT(1143824, 0, procId);
  DBMS_OUTPUT.PUT_LINE(procId);
END;

【讨论】:

【参考方案2】:

致那些倾向于使用 GUI 的人:

点击过程名称上的鼠标右键然后选择Test

然后在新窗口中您将看到生成的脚本,只需添加参数并单击Start DebuggerF9

希望这可以为您节省一些时间。

【讨论】:

以上是关于Oracle:调用包内的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

Oracle12:调用包内的过程

Oracle 存储过程 - 创建游标后我可以清空临时表吗

使用 dbms_job 在包内执行 oracle 中的存储过程

oracle 查看包内的所有程序和函数

oracle存储过程里调用存储过程

Oracle如何创建存储过程和如何调用存储过程