Procédures et Fonctions
DAI: 2023/2022
Procédures
• Une procédure est une unité de traitement qui contient des commandes SQL
relatives au LMD, des variables, des instructions PL/SQL, des constantes, et un
gestionnaire d’erreurs.
• Un Sous programme.
• Stockées dans la base de données.
• Effectue des Traitements.
• NE revoient pas de valeur.
• Peut recevoir des arguments.
Procédures
Syntaxe :
CREATE [OR REPLACE] PROCEDURE nom_proc
(param1 [IN |OUT|INOUT] Type ,
param2 [IN |OUT|INOUT] Type, …)
IS|AS
-- Déclarations locales
BEGIN
-- Instructions
[EXCEPTION
-- Traitement des exceptions]
END;
Arguments
• IN : indique que le paramètre est transmis par le programme appelant n’est pas
modifiable par la fonction.
• OUT : indique que le paramètre est modifiable par la fonction.
• IN OUT : indique que le paramètre est transmis par le programme appelant est
modifiable par la fonction.
• Type représente le type SQL.
Procédures
Une procédure est appelée :
• Dans un bloc PL/SQL :
nom_Procédure[(liste paramètres)]
• Dans SQL*Plus :
SQL> execute nom_Procédure[(liste paramètres)];
Procédures
Tester sans argument :
Créer une procédure qui permet d’augmenter avec le taux 10% le prix des classes
no=1.
• Compiler la procédure.
• Utiliser la procédure dans un bloc PL/SQL.
Procédures
Tester avec argument :
Créer(or replace) une procédure qui permet d’augmenter le prix de 10% des classes
dont le numéro est donnée en argument.
• Compiler la procédure.
• Utiliser la procédure dans bloc PL/SQL avec une valeur en entrée.
Procédures
• Supprimer une procédure :
DROP PROCEDURE nom_procedure;
Fonctions
• Identique à une procédure à la différence qu’elle retourne une valeur.
• Stockées sous format compilée.
• Effectue des Traitements.
• Peut recevoir des arguments.
Fonctions
Syntaxe :
CREATE [OR REPLACE] Function nom_fonction
(param1 [IN |OUT|INOUT] Type ,
param2 [IN |OUT|INOUT] Type, …)
RETURN type_valeur_de_retour
IS|AS
-- Déclarations locales
BEGIN
-- Instructions
Return valeur_de_retour;
[EXCEPTION
-- Traitement des exceptions]
END;
Fonctions
• Appel d’une function stocké:
Syntaxe :
Begin
…. <Nom_Variable>:=<Nom_Fonction>[(<argument>,…)];
End ;
Procédures
Tester sans argument :
Créer une fonction qui permet de calculer le nombre total des bateaux.
• La fonction doit retourner le nombre total.
• Compiler la procédure;
• Utiliser la procédure dans un bloc PL/SQL;
Procédures
Tester avec argument :
Créer une fonction qui permet retourner le nomodele d’un bateau à partir de son
Numero.
• Compiler la procédure;
• Utiliser la procédure dans blocPL/SQL;
Fonction
• Supprimer une fonction :
DROP Function nom_fonction;
Compilation
Syntaxe :
• Alter Procedure <nom_procedure> compile;
• Alter Function <nom_Fonction> compile;
Exercice
• Créer une procédure qui liste les noms et fonctions des employés d’un département
dont le numéro est passé en paramètre.
• Créer une fonction qui retourne l’effectif des employés d’un département dont le
numéro est passé en paramètre.
• Traiter le cas du numéro de département inexistant.