Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer et Utiliser un Package PL/SQL Efficace
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Bases de donnéesDéveloppement

Créer et Utiliser un Package PL/SQL Efficace

L'Équipe Alphorm Par L'Équipe Alphorm 21 novembre 2024
Partager
Partager

Gérer efficacement le code PL/SQL peut être complexe.

Sans une structure adéquate, cela peut mener à des erreurs, des difficultés de maintenance et une mauvaise réutilisation du code.

Cet article vous guide dans la création et l’utilisation de packages PL/SQL pour une gestion optimale du code.

Table de matière
Créer un Package PL/SQL gestEmpSolution : Package PL/SQL gestEmpExécuter le Package PL/SQL gestEmpFAQConclusion

Formation Le langage PL/SQL : Le Guide Complet

Maîtriser le langage SQL en environnement SGBDR. SQL n'aura plus de secrets pour vous !

Découvrir cette formation

aborderons un exercice pratique pour renforcer votre compréhension. Voici ce que nous avons étudié :

  • Qu’est-ce qu’un package ?
    Un package est un regroupement logique de procédures, de fonctions et d’autres objets dans une base de données. Il facilite la gestion du code et améliore la modularité.
  • La structure d’un packageUn package se compose de deux parties principales :la spécification (où sont déclarées les procédures et les fonctions) et le corps (où sont définies les implémentations).
  • Spécification de package
    La spécification énonce les objets qui seront accessibles à d’autres programmes, permettant ainsi de cacher les détails d’implémentation.
  • Corps de package
    Le corps contient les implémentations des procédures et des fonctions déclarées dans la spécification.
  • Utilisation des fonctions, procédures et des curseurs dans un package
    Les packages permettent d’organiser ces éléments de manière cohérente, facilitant ainsi leur utilisation et leur maintenance.
  • Utiliser les objets d’un package
    Les objets d’un package peuvent être utilisés par d’autres procédures, fonctions ou packages, favorisant la réutilisation du code.
  • Maintenir un package
    La maintenance des packages inclut la compilation, la modification et la suppression des objets en fonction des besoins.

Créer un Package PL/SQL gestEmp

Énoncé de l’Exercice

Créez un package nommer gestEmp avec les objets suivants :

  1. Une fonction qui contrôle l’existence d’un salarié à partir de son numéro.
  2. Une procédure qui permet de supprimer un salarié à partir de son numéro.
  3. Une procédure qui permet d’augmenter le salaire d’un salarié. La procédure doit recevoir deux arguments :le premier est le numéro du salarié, le deuxième le pourcentage d’augmentation.
  4. Une procédure qui affiche tous les salariés dont le salaire est supérieur à la moyenne des salaires (cette procédure devra s’appuyer sur un curseur nommé « cur_sal »).

Solution : Package PL/SQL gestEmp

  • Création de la Spécification du Package
				
					
 create or replace PACKAGE gestEmp AS
FUNCTION existeSalarie(numero_salarie IN NUMBER) RETURN BOOLEAN;
PROCEDURE supprimerSalarie(numero_salarie IN NUMBER);
PROCEDURE augmenterSalaire(numero_salarie IN NUMBER, pourcentage IN NUMBER);
PROCEDURE afficherSalairesSupMoyenne;
END gestEmp;

				
			
  • Création du Corps du Package
				
					
 CREATE OR REPLACE PACKAGE BODY gestEmp AS
FUNCTION existeSalarie(numero_salarie IN NUMBER) RETURN BOOLEAN IS
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM Salaries WHERE numero_sal = numero_salarie;
RETURN v_count > 0;
END existeSalarie;
PROCEDURE supprimerSalarie(numero_salarie IN NUMBER) IS
BEGIN
DELETE FROM Salaries WHERE numero_sal = numero_salarie;
END supprimerSalarie;
PROCEDURE augmenterSalaire(numero_salarie IN NUMBER, pourcentage IN NUMBER) IS
BEGIN
UPDATE Salaries
SET salaire = salaire + (salaire * pourcentage / 100)
WHERE numero_sal = numero_salarie;
END augmenterSalaire;
PROCEDURE afficherSalairesSupMoyenne IS
CURSOR cur_sal IS SELECT salaire FROM Salaries;
v_moyenne NUMBER;
v_salaire NUMBER;
BEGIN
SELECT AVG(salaire) INTO v_moyenne FROM Salaries;
OPEN cur_sal;
LOOP
FETCH cur_sal INTO v_salaire;
EXIT WHEN cur_sal%NOTFOUND;
IF v_salaire > v_moyenne THEN
DBMS_OUTPUT.PUT_LINE('Salaire: ' || v_salaire);
END IF;
END LOOP;
CLOSE cur_sal;
END afficherSalairesSupMoyenne;
END gestEmp;

				
			

Et voilà la Spécification et le corps du Package gestEmp a été créer avec succès :

Exemple de package PL/SQL avec procédures

Explication de la Solution

  • Fonction existeSalarie :Cette fonction vérifie si un salarié existe dans la table Salariés en comptant le nombre d’occurrences du numéro de salarié. Elle retourneTRUEsi le salarié existe, sinonFALSE.
  • Procédure supprimerSalarie :Cette procédure supprime un salarié de la table Salariés en utilisant son numéro. Elle n’a pas de retour de valeur.
  • Procédure augmenterSalaire :Cette procédure augmente le salaire d’un salarié en calculant le nouveau salaire à partir d’un pourcentage donné. Elle prend le numéro du salarié et le pourcentage d’augmentation comme paramètres.
  • Procédure afficherSalairesSupMoyenne :Cette procédure affiche les salaires qui dépassent la moyenne des salaires. Elle utilise un curseur pour parcourir tous les salaires et compare chaque salaire à la moyenne.

Exécuter le Package PL/SQL gestEmp

  • Activer l’affichage de sortie (si nécessaire) :Assurez-vous que la sortie de la console est activée pour voir les résultats des appels de procédure qui utilisent DBMS_OUTPUT.PUT_LINE. Exécutez la commande suivante :
				
					
 SET SERVEROUTPUT ON;

				
			
  • Vérifier l’existence d’un salarié :Appelez la fonction existeSalarie pour vérifier si un salarié existe. Remplacez numero_salarie par le numéro réel du salarié que vous souhaitez vérifier.
				
					
 DECLARE
v_existe BOOLEAN;
BEGIN
v_existe := gestEmp.existeSalarie(2700); -- Remplacez 2700 par le numéro du salarié
IF v_existe THEN
DBMS_OUTPUT.PUT_LINE('Le salarié existe.');
ELSE
DBMS_OUTPUT.PUT_LINE('Le salarié n' 'existe pas.');
END IF;
END;

				
			

Et voici son résultat lors de son exécution :

Erreur PL/SQL: Le salarié n'existe pas.
  • Supprimer un salarié :Utilisez la procédure supprimerSalarie pour supprimer un salarié en fonction de son numéro.
				
					
 BEGIN
gestEmp.supprimerSalarie(2700); -- Remplacez 2700 par le numéro du salarié à supprimer
DBMS_OUTPUT.PUT_LINE('Salarié supprimé.');
END;

				
			

Et voici son résultat lors de son exécution :

Message PL/SQL : Salarié supprimé
  • Augmenter le salaire d’un salarié :Exécutez la procédure augmenterSalaire pour modifier le salaire d’un salarié. Remplacez numero_salarie et pourcentage par les valeurs appropriées.
				
					
 BEGIN
gestEmp.augmenterSalaire(123, 10); -- Remplacez 123 par le numéro du salarié et 10 par le pourcentage d'augmentation
DBMS_OUTPUT.PUT_LINE('Augmentation de salaire effectuée.');
END;

				
			

Et voici son résultat lors de son exécution :

Texte d'augmentation de salaire en PL/SQL.
  • Afficher les salariés dont le salaire est supérieur à la moyenne :

Appelez la procédure afficherSalairesSupMoyenne pour afficher les salaires des salariés qui dépassent la moyenne.

				
					
 BEGIN
gestEmp.afficherSalairesSupMoyenne;
END;

				
			

Et voici son résultat lors de son exécution :

Exemple de sortie PL/SQL affichant un 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.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Qu'est-ce qu'un package en PL/SQL ?
Un package en PL/SQL est une collection logique de procédures, fonctions et autres objets de base de données qui facilitent la gestion du code et améliorent la modularité. Il se compose de deux parties principales : la spécification, qui déclare les objets accessibles, et le corps, où sont définies les implémentations. Grâce à cette structure, un package permet de cacher les détails d’implémentation tout en offrant une interface claire pour l’utilisation des objets définis.
Comment créer un package en PL/SQL ?
Pour créer un package en PL/SQL, il faut d’abord rédiger la spécification qui déclare les procédures et fonctions que le package offrira. Ensuite, vous devez créer le corps du package qui contient les implémentations de ces procédures et fonctions. Par exemple, le package ‘gestEmp’ est conçu pour gérer les salariés en incluant des fonctions pour vérifier l’existence d’un salarié, le supprimer, augmenter son salaire, et afficher les salaires supérieurs à la moyenne.
Comment utiliser les objets d'un package PL/SQL ?
Les objets d’un package PL/SQL, tels que les procédures et fonctions, peuvent être utilisés par d’autres programmes, améliorant ainsi la réutilisabilité du code. Dans le package ‘gestEmp’, par exemple, vous pouvez appeler des fonctions comme ‘existeSalarie’ pour vérifier l’existence d’un salarié ou utiliser la procédure ‘augmenterSalaire’ pour modifier le salaire d’un salarié. Cette utilisation modulaire permet d’appliquer des opérations complexes de manière cohérente et maintenable.
Quels sont les avantages de l'utilisation des packages PL/SQL ?
L’utilisation des packages en PL/SQL présente plusieurs avantages, notamment la modularité, la réutilisation du code, et la gestion simplifiée des objets. Un package permet de grouper des procédures et fonctions logiquement liées, ce qui facilite leur maintenance et améliore l’organisation du code. De plus, les packages permettent de cacher les détails d’implémentation en exposant seulement les interfaces nécessaires, ce qui renforce la sécurité et l’intégrité du code.
Comment maintenir un package PL/SQL ?
La maintenance d’un package PL/SQL inclut la compilation, la modification, et la suppression des objets en fonction des besoins. Cela implique souvent de mettre à jour le corps du package pour ajuster les implémentations des procédures et fonctions ou de modifier la spécification pour exposer de nouveaux objets. Une bonne stratégie de maintenance est essentielle pour assurer que le package continue de répondre efficacement aux exigences fonctionnelles et de performance.

Conclusion

Les packages PL/SQL offrent une solution robuste pour gérer le code de manière modulaire et réutilisable. Comment envisagez-vous d’implémenter cette approche dans votre propre gestion de base de données ?

ÉTIQUETÉ : PL/SQL
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer et Utiliser un Package PL/SQL Efficace

© Alphorm - Tous droits réservés