2010-10-31 12 views

Respuesta

16

En SQL además de que puede hacer esto:

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

O usted puede ser capaz de utilizar SQL:

select myfunction() from dual; 
+1

No puedo seleccionar porque tengo una instrucción de actualización dentro de la función de SQL. El ejecutivo ... funciona. ¡Gracias! – Mattan

+0

¿Cuál es la ruta completa? ¿Qué pasa si se trata de una función o procedimiento que está probando que está en un paquete? – user447607

2

El ejemplo anterior muestra cómo llamar a una función desde SQL * Plus. Si llama a una función desde un procedimiento PL/SQL, vea el ejemplo a continuación.

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

Un ejemplo más complejo que devolverá un valor 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; 
Cuestiones relacionadas