2013-02-01 139 views
13

我已創建了一個存儲在Oracle過程從存儲過程中取出參數?

PROCEDURE string_opp(input_string IN varchar2,output_string OUT varchar2) 

現在的問題是如何執行這個存儲過程並檢索輸出parameter.i've其次要在SQL Developer:

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; 

代替剛剛走出只要定義你的程序參數作爲IN OUT。

檢查此資源:

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

+2

謝謝你的朋友,好的,我怎樣才能用out參數作爲同一個變量?! –

+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;