简体   繁体   English

从存储过程中检索出参数?

[英]retrieve out parameter from stored procedure?

I have created one stored procedure in oracle: 我在oracle中创建了一个存储过程

PROCEDURE string_opp(input_string IN varchar2,output_string OUT varchar2)

Now the problem is how to execute this stored procedure and retrieve the output parameter.i've followed in sql developer: 现在的问题是如何执行此存储过程并检索输出参数。我在sql developer中遵循过:

SET SERVEROUTPUT ON
DECLARE
  outputString VARCHAR;
BEGIN
  EXEC string_opp('input String',:outputString);
END;

When i tried this i didn't get anything, could someone help me? 当我尝试此操作时,我什么也没得到,有人可以帮助我吗?

Just a couple of issues: 只是几个问题:

SET SERVEROUTPUT ON
DECLARE
   outputString VARCHAR(20);
BEGIN
  string_opp('input String', outputString);
  dbms_output.put_line(outputString);
END;

You can use as the same variable: 您可以使用相同的变量:

SET SERVEROUTPUT ON
DECLARE
   outputString VARCHAR(20);
BEGIN
  outputString := 'input String';
  string_opp(outputString);
  dbms_output.put_line(outputString);
END;

Just define your procedure parameter as IN OUT in place of just OUT. 只需将您的过程参数定义为IN OUT即可代替OUT。

Check this resource: 检查此资源:

http://psoug.org/snippet/FUNCTIONS-IN-OUT-parameter_873.htm http://psoug.org/snippet/FUNCTIONS-IN-OUT-parameter_873.htm

Let say: 说:

If you have Store procedure with output parameter: 如果您具有带有输出参数的存储过程:

Create procedure test(name out varchar2(50))
as
begin
name:='testing output parameter';
-- dbms_output.put_line('Output parameter value ' || name );
end;

Now execute the above procedure : 现在执行以上过程:

declare
l_name varchar2(50);
begin
test(l_name);
dbms_output.put_line( 'name = ' || l_ename );
end;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM