2010-10-31 26 views

Répondre

16

Dans SQL Plus, vous pouvez le faire:

var x number 
exec :x := myfunction(); 

Ou vous pourriez être en mesure d'utiliser SQL:

select myfunction() from dual; 
+1

Je ne peux pas choisir parce que j'ai une déclaration de mise à jour dans la fonction SQL. L'exec ... fonctionne. Merci! – Mattan

+0

Quel est le chemin complet? Et si c'est une fonction ou une procédure que vous testez dans un paquet? – user447607

2

L'exemple ci-dessus montre comment appeler une fonction à partir de SQL * Plus. Si vous appelez une fonction à partir d'une procédure PL/SQL, consultez l'exemple ci-dessous.

DECLARE 
    x NUMBER; 
BEGIN 
    x := myfunction(); 
END; 

Un exemple plus complexe qui retourne une valeur de 100 (10 * 10):

DECLARE 

    x NUMBER; 

    FUNCTION mysquare(in_y IN NUMBER) RETURN NUMBER IS 
    BEGIN 
    RETURN in_y * in_y; 
    END mysquare; 

BEGIN 

    dbms_output.enable; 
    x := mysquare(10); 
    dbms_output.put_line(x); 

END;