Les tâches répétitives et la logique métier complexifient la gestion des bases de données.
Cela entraîne une inefficacité, des erreurs fréquentes et une maintenance coûteuse.
Les procédures stockées en PL/SQL vous permettent de centraliser et automatiser ces tâches, améliorant ainsi l’efficacité et la fiabilité de votre base de données.
Maîtriser le langage SQL en environnement SGBDR. SQL n'aura plus de secrets pour vous !
Dans cette section, nous allons découvrir les procédures stockées en PL/SQL, de leur création à leur suppression. Les procédures stockées permettent d’exécuter des sous-programmes enregistrés dans la base de données, optimisant ainsi la réutilisation du code et réduisant les temps de traitement. Elles sont particulièrement utiles pour exécuter des opérations répétitives et pour encapsuler la logique métier au sein de la base de données.
Une procédure stockée est un sous-programme sauvegardé sous format compilé dans la base de données. Elle effectue une tâche spécifique, comme une mise à jour ou une insertion de données.
Elle peut être appelée par d’autres programmes ou déclenchée automatiquement. Elle peut aussi recevoir des arguments en entrée ou en sortie, facilitant ainsi la gestion dynamique des données.
Les procédures stockées peuvent accepter trois types d’arguments : IN, OUT, et IN OUT :
IN pour passer une valeur à la procédure ;
OUT pour récupérer une valeur ;
IN OUT pour à la fois recevoir et renvoyer une valeur.
Création de procédures stockées PL/SQL
La syntaxe de création d’une procédure stockée en PL/SQL se compose de plusieurs sections clés qui définissent la procédure et les instructions qu’elle exécute.
CREATE [ OR REPLACE ] PROCEDURE nom_procedure
( argument [ { IN | OUT | IN OUT } ] TYPE [, ... ] )
IS | AS
BEGIN
-- Instructions
EXCEPTION
WHEN exception_name THEN
-- Gestion de l'exception
END nom_procedure;
Explication détaillée de chaque partie
- CREATE [ OR REPLACE ] PROCEDURE nom_procedure :Cette première ligne indique que l’on crée une procédure stockée. Le mot-clé OR REPLACE est optionnel ; il remplace la procédure si elle existe déjà, sans générer d’erreur.
- ( argument [ { IN | OUT | IN OUT } ] TYPE [, … ] ) :Les arguments permettent de transmettre des valeurs ou de récupérer des résultats depuis la procédure. Chaque argument doit être défini avec son mode (IN, OUT, ou IN OUT) et son type :IN : Indique que l’argument est passé en entrée pour un usage dans la procédure.OUT : Indique que l’argument est un résultat de la procédure.IN OUT : Permet à l’argument d’être à la fois une entrée et une sortie.
- IS | AS :Ces mots-clés introduisent le corps de la procédure. IS ou AS sont interchangeables selon la préférence de style.
- BEGIN … END :Cette section contient les instructions exécutées lors de l’appel de la procédure. Les commandes de traitement des données ou des calculs sont écrites entre BEGIN et END.
- EXCEPTION … WHEN exception_name THEN … :Cette section gère les erreurs possibles. Si une exception survient dans le bloc BEGIN…END, elle est interceptée ici et permet une réponse personnalisée.
Cet exemple montre comment créer une procédure nommée augmentation_salaire. Elle augmente le salaire d’un employé en utilisant son numéro comme paramètre d’entrée.
CREATE OR REPLACE PROCEDURE augmentation_salaire(
numero_employe IN NUMBER
) IS
BEGIN
UPDATE salaries
SET salaire = salaire * 1.2
WHERE numero_sal = numero_employe;
DBMS_OUTPUT.PUT_LINE('Salaire de l’employé numéro ' || numero_employe || ' augmenté de 20 %.');
END augmentation_salaire;
/
Et voilà, votre procédure augmentation_ salaire avec le paramètre numero_salarie a été créée dans le répertoire procedures.
Appel de procédures PL/SQL
Une fois la procédure stockée créée, vous pouvez l’appeler pour effectuer les opérations qu’elle contient. L’appel d’une procédure se fait en une ligne, et plusieurs syntaxes sont disponibles pour cette tâche.
Pour faire appel a une procédure vous pouvez utilisé l’un des trois syntaxe suivante :
nom_procedure ( arguments );
CALL nom_procedure ( arguments );
EXEC | EXECUTE nom_procedure ( arguments );
Après la création de votre procédure auhmentation_salaire , pour faire l’appel a cette procédure voilà comment :
EXEC augmentation_salaire(2);
Donc et voila le résultat de la table salaries avant et après de faire l’appel de procedeur :
- Avant l’appel de la procédureaugmentation_salaire :
- Après l’appel de la procédureaugmentation_salaire :
Suppression de procédures PL/SQL
Si la procédure n’est plus utile ou doit être recréée, vous pouvez la supprimer pour éviter toute redondance ou conflit dans votre base de données.
DROP PROCEDURE nom_procedure;
Et pour supprimer la procédure que nous avons déjà créée, écrivez :
DROP PROCEDURE augmentation_salaire;
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce qu'une procédure stockée en PL/SQL ?
Comment créer une procédure stockée en PL/SQL ?
Comment appeler une procédure stockée en PL/SQL ?
Comment supprimer une procédure stockée en PL/SQL ?
Quels sont les types d'arguments pour une procédure stockée ?
Conclusion
En intégrant efficacement les procédures stockées en PL/SQL, vous optimisez la gestion de votre base de données. Quelle autre fonctionnalité PL/SQL souhaitez-vous explorer pour améliorer votre flux de travail ?