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 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 FUNCTION <nom fonction>  
 [(@<variable 1> <format>,  
  @<variable 2> <format>,  
   ... ... )]  
   RETURNS <format>  
 AS  
 
BEGIN  
  
... ...  
   
END;

Par exemple, la fonction suivante ramène le prix de la chambre à partir d’une date, du nom de l’hôtel, du type et du nombre de lits.

CREATE OR REPLACE FUNCTION PRIX_CHAMBRE  
(vhotel IN VARCHAR2, vtypelit IN VARCHAR2, inblit IN INT, ddate IN DATE) 
RETURN NUMBER 
IS   
DPrix NUMBER;  
BEGIN  
SELECT Prix INTO dPrix FROM Tarifs t 
INNER JOIN Hotels ...