Les procédures¶
Une procédure en PL/SQL est un bloc de code nommé, stocké dans la base de données, qui exécute une série d’instructions.
Elle permet de :
- Réutiliser du code
- Structurer un programme
- Effectuer des traitements (insertion, mise à jour, calculs, etc.)
Une fois compilée et stockée, elle s'exécute :
- À partir d'un autre bloc PL/SQL
- À partir d'une ligne de commande EXECUTE
Structure¶
CREATE OR REPLACE PROCEDURE nom_procedure (
param1 TYPE,
...
)
IS
--Déclarations
BEGIN
-- Instructions
END;
Exemple¶
Création de la procédure :
CREATE OR REPLACE PROCEDURE insererEtudiant (
nom VARCHAR2,
prenom VARCHAR2
)
IS
BEGIN
INSERT INTO etudiant VALUES (
seq_etudiant.NEXTVAL,
nom,
prenom);
END;
Utilisation :
BEGIN
insererEtudiant('Beaulieu','Tom');
END;
Comparaison : Procédure VS Bloc anonyme VS Fonction¶
La procédure ressemble au bloc anonyme.
Toutefois, il y a des différences importantes :
| Critère | Procédure | Bloc anonyme |
|---|---|---|
| Nom | Oui | Non |
| Stockage | Base de données | Non |
| Réutilisable | Oui | Non |
| Paramètres | Oui | Non |
| Utilisation | Appels multiples | Exécution unique |
| Appel dans un autre bloc | Oui | Non |
Conclusion
Le bloc anonyme est utile pour tester rapidement ou pour un traitement unique, la procédure est utilisée pour du code réutilisable qui peut recevoir des paramètres.
Bien que la procédure ressemble aux fonctions, il existe aussi des différences importantes :
| Critère | Procédure | Fonction |
|---|---|---|
| Nom | Oui | Oui |
| Stockage | Base de données | Base de données |
| Paramètres | Oui | Oui |
| Retour de valeur | Pas par défaut, nécessite un paramètre spécial | Obligatoire Via RETURN |
| Utilisable dans SELECT | ❌ Non | ✅ Oui |
| Appel dans un autre bloc | Oui, seule | Oui, nécessite une variable de retour |
| Objectif | Action / traitement, sans retour | Calcul / obtenir une valeur, avec retour |
🧠 À retenir
- Une procédure = action
- Une fonction = valeur retournée
- Un bloc anonyme = test rapide
Cas d'utilisation¶
Les procédures sont idéales pour :
✔ Traitements complexes
- Mise à jour de plusieurs tables
- Calculs avec logique conditionnelle
✔ Automatisation
- Traitements en lot
- Nettoyage de données
✔ Logique métier
- Gestion d’opérations système (gestion de RAM ou autre)
- Traitement des logs
✔ Utilisation dans une application
-
Centraliser la logique de gestion des données de la BD :
La BD s'occupe des actions sur les données comme insertion, mise à jour, etc...
L'application appelle la procédure au lieu d'une instruction SQL.
-
Éviter la duplication de code
Le code est découpé en "qui fait quoi " / l'application VS la BD.
Bonnes pratiques¶
- Donner des noms clairs qui débutent avec un verbe (ajouterClient, calculerTotal)
- Gérer les erreurs le plus possible (EXCEPTION)
- Documenter les paramètres
- Éviter les procédures trop longues (bien découper le code)