Oracle:在包内调用存储过程

tes*_*icg 18 oracle package

我在Oracle中并不多.我使用PL/SQL Developer.

我有以下包裹:

create or replace package PKG1
as
procedure INIT
(
  nRN                       in number,
  nREC_TYPE                 in number,
  nIDENT                    out number
);
Run Code Online (Sandbox Code Playgroud)

我不知道如何从PL/SQL Developer环境调用它.我试过这个:

DECLARE
  procId NUMBER;

BEGIN
  EXECUTE PKG1.INIT(1143824, 0, procId);
  DBMS_OUTPUT.PUT_LINE(procId);
END;
Run Code Online (Sandbox Code Playgroud)

但是,有一个ORA-06550(PLS-00103)错误.

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

在此先感谢您的帮助.

戈兰

cag*_*boy 27

你快到了,只需拿出EXECUTE:

DECLARE
  procId NUMBER;

BEGIN
  PKG1.INIT(1143824, 0, procId);
  DBMS_OUTPUT.PUT_LINE(procId);
END;
Run Code Online (Sandbox Code Playgroud)


Mat*_*ius 8

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

单击Right mouse程序名称上的按钮,然后选择Test

在此输入图像描述

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

在此输入图像描述

希望这能为您节省一些时间.