Sommaire

Création d’une fonction stockée

Dans le même exemple, il est également possible de créer une fonction à la place de la procédure. La différence entre une fonction et une procédure ? La première renvoie une valeur.

Syntaxe Oracle

CREATE OR ALTER FUNCTION <nom fonction>  
[(<variable entrée 1> IN <format>,  
   <variable entrée 2> IN <format>,  
   ... ... ]  
   RETURN <format>  
 IS  
<variable sortie> <format>)]  
BEGIN  
  
... ...  
  
[EXCEPTION  
... ...  
]  
END;

Syntaxe SQL Server

CREATE OR ALTER FUNCTION <nom fonction>  
 [(@<variable 1> <format>,  
  @<variable 2> <format>,  
   ... ... )]  
   RETURNS <format>  
 AS  
 
BEGIN  
  
... ...  
   
END;

Par exemple, la fonction suivante ramène l’âge de l’acteur calculé à partir de son année de naissance.

CREATE OR REPLACE FUNCTION CALCUL_AGE_ACTEUR 
 (DATE_NAISSANCE IN DATE) RETURN NUMBER 
 IS  
 AGE_ACTEUR NUMBER(5); 
 
BEGIN 
 
SELECT (SYSDATE - DATE_NAISSANCE)/365 INTO AGE_ACTEUR FROM DUAL; 
RETURN  (AGE_ACTEUR); 
 
EXCEPTION 
   WHEN OTHERS THEN  
     ...