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 ...