2013-02-01 3 views
13

私がオラクルに1つのストアドプロシージャを作成しました:ストアドプロシージャからパラメータを取得しますか?

PROCEDURE string_opp(input_string IN varchar2,output_string OUT varchar2) 

さて問題は、このストアドプロシージャを実行し、出力parameter.i'veは、SQL開発者が従って取得する方法である:

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

私はこれを試したときに何も得られなかった、誰かが私を助けることができましたか?

答えて

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の代わりにOUTのように、あなたの手順のパラメータを定義します。

チェックこのリソース:

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

+2

おかげさまで、ありがとう、私はどのように同じ変数としてパラメータを使用することができますか? –

+0

ただ答えを更新しました。任意の質問、教えてください:) – gustavodidomenico

+0

あなたの問題に適している場合は、答えを受け入れることができます。 – gustavodidomenico

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; 
関連する問題