14

Oracle で1 つのストアド プロシージャを作成しました。

PROCEDURE string_opp(input_string IN varchar2,output_string OUT varchar2)

問題は、このストアド プロシージャを実行して出力パラメータを取得する方法です。

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

これを試したとき、何も得られませんでした。誰か助けてもらえますか?

4

2 に答える 2

8

いくつかの問題:

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

同じ変数として使用できます:

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

プロシージャー・パラメーターを OUT の代わりに IN OUT として定義するだけです。

このリソースを確認してください:

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

于 2013-02-01T15:37:18.820 に答える
2

言いましょう:

出力パラメーターを持つストア プロシージャがある場合:

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

上記の手順を実行します。

declare
l_name varchar2(50);
begin
test(l_name);
dbms_output.put_line( 'name = ' || l_ename );
end;
于 2013-02-02T15:22:34.123 に答える