Vous êtes sur la page 1sur 16

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.

Vous aimerez peut-être aussi