web-dev-qa-db-fra.com

exécuter une fonction dans sql plus

J'ai créé une fonction dans Oracle qui insère des enregistrements dans des tables spécifiques et renvoie une sortie en fonction de ce qui se passe dans la fonction. par exemple (numéro de retour ins_rec)

Comment appeler cette fonction et voir sa sortie en sql plus

28
maher
declare
  x number;
begin
  x := myfunc(myargs);
end;

Alternativement:

select myfunc(myargs) from dual;
33
GriffeyDog

Une option serait:

SET SERVEROUTPUT ON

EXEC DBMS_OUTPUT.PUT_LINE(your_fn_name(your_fn_arguments));
11
cagcowboy

Comme une autre réponse l'a déjà dit, appelez select myfunc(:y) from dual;, mais vous pourriez trouver un peu délicat de déclarer et de définir une variable dans sqlplus:

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;
4
CoderSteve