2013-02-01 18 views
13

Stworzyłem jeden procedurę przechowywana w oracle:pobierz parametr z procedury składowanej?

PROCEDURE string_opp(input_string IN varchar2,output_string OUT varchar2) 

Teraz problemem jest to, jak wykonać tę procedurę przechowywaną i odzyskać parameter.i've wyjścia następuje w SQL Developer:

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

Kiedy próbowałem tego, nic nie dostałem, czy ktoś mógłby mi pomóc?

Odpowiedz

8

Zaledwie kilka kwestii:

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

można wykorzystywać jako tej samej zmiennej:

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

Wystarczy zdefiniować parametr procedurą co w miejscu tylko na zewnątrz.

Sprawdź ten zasób:

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

+2

dziękuję przyjacielu, ok w jaki sposób mogę użyć parametru out jako tej samej zmiennej ?! –

+0

Właśnie zaktualizowałem odpowiedź. Wszelkie pytania, proszę mi powiedzieć :) – gustavodidomenico

+0

Możesz zaakceptować odpowiedź, jeśli jest odpowiednia dla twojego problemu. – gustavodidomenico

2

powiedzmy:

Jeśli masz procedurę sklepu z parametrem wyjściowym:

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

teraz wykonać powyższą procedurę:

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