Índice

Creación de una función almacenada Código PL/SQL:funciones almacenadas

En el mismo ejemplo, también es posible crear una función en lugar de un procedimiento. ¿Cuál es la diferencia entre una función y un procedimiento? Que la primera devuelve un valor. FUNCTION

Sintaxis Oracle

CREATE OR ALTER FUNCTION <nombre función>  
 [(<variable entrada 1> IN <formato>,  
   <variable entrada 2> IN <formato>,  
   ... ... ]  
   RETURN <formato>  
 IS  
<variable salida> <formato>)]  
BEGIN  
  
... ...  
  
[EXCEPTION  
... ...  
]  
END;

Sintaxis SQL Server FUNCTION

CREATE OR ALTER FUNCTION <nombre función>  
 [(@<variable 1> <formato>,  
  @<variable 2> <formato>,  
   ... ... )]  
   RETURNS <formato>  
 AS  
 
BEGIN  
  
... ...  
   
END;

Por ejemplo, la siguiente función devuelve la edad del actor calculada a partir de su año de nacimiento.

CREATE OR REPLACE FUNCTION CALCULO_EDAD_ACTOR 
 (FECHA_NACIMIENTO IN DATE) RETURN NUMBER 
 IS 
 EDAD_ACTOR NUMBER(5); 
  
BEGIN  
  
SELECT (SYSDATE - FECHA_NACIMIENTO)/365 INTO EDAD_ACTOR FROM DUAL; 
RETURN  (EDAD_ACTOR); 
  
EXCEPTION  
   WHEN OTHERS THEN   
     DBMS_OUTPUT.PUT_LINE( ’El número de error es: ’||  
TO_CHAR( SQLCODE ...