2011-02-26 11 views
22

Utworzono funkcję w oracle, która wstawia rekordy w określonych tabelach i zwraca dane wyjściowe zgodnie z tym, co dzieje się w funkcji. np (ins_rec liczba powrót)wykonywanie funkcji w sql plus

Jak mogę nazwać tę funkcję i zobaczyć swoje wyjście w SQL * Plus

Odpowiedz

10

Jedną z opcji byłoby:

SET SERVEROUTPUT ON 

EXEC DBMS_OUTPUT.PUT_LINE(your_fn_name(your_fn_arguments)); 
26
declare 
    x number; 
begin 
    x := myfunc(myargs); 
end; 

Alternatywnie:

select myfunc(myargs) from dual; 
+1

'select myFunc (myargs) from dual;' pracował dla mnie. Miałem problemy z wersją 'delcare'. – claptimes

+0

Mam funkcję, która wywołuje procedurę. Jeśli użyję tej metody do wywołania funkcji, otrzymam wyjątek zapisu DML. Jeśli używam wywołania "exec dbms_output ....", działa bezbłędnie. – user1747935

+2

Nie można użyć funkcji, która _modifies data_ w instrukcji 'select'. – GriffeyDog

3

Jak już powiedziano, odpowiedz: select myfunc(:y) from dual;, ale możesz znaleźć deklarowanie i ustawienie zmiennej w sqlpl nam trochę skomplikowane:

sql> var y number 

sql> begin 
    2 select 7 into :y from dual; 
    3 end; 
    4/

PL/SQL procedure successfully completed. 

sql> print :y 

     Y 
---------- 
     7 

sql> select myfunc(:y) from dual; 
Powiązane problemy