如何使用简单的输出参数?

Jay*_*van 4 oracle oracle-11g-r2

我是 Oracle 的新手,所以我为这样一个简单的问题道歉,但我已经浪费了几个小时。

我有以下存储过程:

create or replace procedure MyTestProc (outparam OUT VARCHAR2) AS
begin
   select 'test' into outparam from dual;
end;
Run Code Online (Sandbox Code Playgroud)

我如何调用这个存储过程,并将 的值插入outparam 到一个变量中?我希望能够做到这一点,这样我就可以将结果用于其他事情,例如,将其打印到输出。

使用函数,我可以很容易地做到这一点:

variable tmpString VARCHAR2(100);
call MyTestFunc('test') INTO :tmpString;
print tmpString;
Run Code Online (Sandbox Code Playgroud)

如何使用存储过程执行此操作?

Jus*_*ave 6

如果您仍在使用 SQL*Plus 变量

variable tmpString VARCHAR2(100);
begin
  myTestProc( :tmpString );
end;
/
print tmpString;
Run Code Online (Sandbox Code Playgroud)

如果你想在 PL/SQL 中做

SET SERVEROUTPUT ON;
DECLARE
  tmpString VARCHAR2(100);
BEGIN
  myTestProc( tmpString );
  dbms_output.put_line( tmpString );
END;
Run Code Online (Sandbox Code Playgroud)