2013-02-01 21 views
13

Bir kahin prosedürü saklı oluşturduk:, saklı yordamdan parametreyi geri aldınız mı?

PROCEDURE string_opp(input_string IN varchar2,output_string OUT varchar2) 

Şimdi problem bu saklı yordamı yürütmek ve çıkış parameter.i've sql geliştirici takip almak için yapılması gerekenler:

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

Bunu denediğimde hiçbir şey almadım, birisi bana yardım edebilir mi? konuların

cevap

8

Sadece birkaç:

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

Aynı değişken olarak kullanabilirsiniz:

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

Hemen hemen OUT yerine IN olarak prosedür parametresini OUT tanımlar.

Kontrol Bu kaynak:

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

+2

Teşekkür ederim arkadaşım, tamam aynı parametrede nasıl değişkeni kullanabilirim ?! –

+0

Sadece cevabı güncelledim. Herhangi bir soru, lütfen bana söyleyin :) – gustavodidomenico

+0

Sorunuz için uygunsa cevabı kabul edebilirsiniz. – gustavodidomenico

2

Let ki:

çıkış parametresi ile saklayın prosedürü varsa:

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

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

Şimdi yukarıdaki prosedürü yürütmek

İlgili konular