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 : Comprendre les Programmes Stockés en PL/SQL
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
DéveloppementBases de données

Comprendre les Programmes Stockés en PL/SQL

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

La gestion efficace des bases de données est essentielle pour les entreprises modernes.

Sans une structure adéquate, les opérations peuvent devenir inefficaces et coûteuses, entraînant des erreurs de données.

Cet article explore comment les programmes stockés en PL/SQL peuvent optimiser vos processus de base de données, assurant ainsi une exécution fluide et fiable.

Table de matière
Exercices PL/SQL : Programmes stockésTests pratiques : Procédures PL/SQLFAQConclusion

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

L’objectif de ce document est de renforcer la compréhension des programmes stockés dans PL/SQL, y compris les procédures et fonctions stockées avec ou sans arguments, les fonctions retournant des valeurs scalaires ou des tables, ainsi que la gestion des arguments avec différents modes d’affectation (IN, OUT, IN OUT, NOCOPY). En maîtrisant ces concepts, les utilisateurs pourront créer et manipuler des programmes stockés pour optimiser les opérations de base de données et assurer la modularité du code PL/SQL.

Les procédures stockées

Avec et sans argument : Créer des procédures qui acceptent des paramètres pour modifier ou récupérer des données.

Les fonctions en PL/SQL

Fonctions avec et sans arguments, renvoyant des valeurs scalaires ou des tables.

Les modes d’affectation des arguments

  • IN :Pour passer des valeurs en lecture seule.
  • OUT :Pour retourner des valeurs en sortie.
  • IN OUT :Pour lire et écrire sur le même paramètre.
  • NOCOPY :Pour optimiser la performance en évitant la copie des valeurs en mémoire.

Exercices PL/SQL : Programmes stockés

Énoncé de l’exercice :

  • Création de la procédure updatequantite :Créez une procédure stockée nommée updatequantite qui met à jour la quantité en stock d’un article. La référence de l’article et la quantité seront passés en paramètres (arguments) à cette procédure.
  • Création de la fonction valeurstock :Créez une fonction nommée valeurstock qui retourne la valeur totale des articles en stock.
  • Création de la fonction articleparcategorie :Créez une fonction non stockée nommée articleparcategorie qui retourne le nombre d’articles par catégorie pour toutes les catégories et affiche les résultats.

Solution 1: Procédure updatequantite pour Mettre à Jour la Quantité en Stock

Explication de la solution : La procédure updatequantite prend en entrée deux paramètres : la référence de l’article (ID ou code unique) et la quantité à mettre à jour. Cette procédure met à jour la table des articles en ajustant la quantité en stock de l’article correspondant à la référence fournie.

				
					
 CREATE OR REPLACE PROCEDURE updatequantite (
p_reference_article IN VARCHAR2,
p_quantite IN NUMBER
) AS
BEGIN
UPDATE ARTICLES
SET QUANTITE_STOCK = p_quantite
WHERE REFERENCE_ART = p_reference_article;
DBMS_OUTPUT.PUT_LINE('Quantité mise à jour avec succès pour l\'article ' || p_reference_article);
END;
/

				
			

Résultat attendu :

Lors de l’exécution de la procédure updatequantite, si l’article existe, sa quantité en stock est mise à jour avec succès, et un message « Quantité mise à jour avec succès pour l’article X » s’affiche.

Si l’article n’existe pas, aucun changement n’est apporté, mais le message ne sera affiché qu’en cas de succès.

Solution 2: Fonction valeurstock pour calculer la valeur totale du stock

Explication de la solution : La fonction valeurstock calcule la valeur totale des articles en stock en multipliant la quantité par le prix unitaire de chaque article. Elle retourne ensuite cette valeur.

				
					
 CREATE OR REPLACE FUNCTION valeurstock RETURN NUMBER AS
v_valeur_total NUMBER;
BEGIN
SELECT SUM(QUANTITE_STOCK * PRIX_HT) INTO v_valeur_total
FROM ARTICLES;
RETURN v_valeur_total;
END;
/

				
			

Résultat attendu :

En appelant la fonction valeurstock, elle retourne la valeur totale des articles en stock.

Par exemple, si la valeur totale est calculée à 10000, cette valeur sera renvoyée, et elle peut être utilisée dans des requêtes ou affichée dans l’application.

Solution 3: Fonction articleparcategorie pour compter les articles par catégorie

Explication de la solution : La fonction articleparcategorie n’est pas stockée dans la base de données et est exécutée pour afficher le nombre d’articles pour chaque catégorie. Cette fonction retourne les résultats sous forme de texte affiché dans la console.

				
					
 DECLARE
CURSOR c_categories IS
SELECT C.LIBELLE_CAT, COUNT(A.REFERENCE_ART) AS nb_articles
FROM CATEGORIES C
LEFT JOIN ARTICLES A ON C.CODE_CAT = A.CODE_CAT
GROUP BY C.LIBELLE_CAT;
v_libelle_cat CATEGORIES.LIBELLE_CAT%TYPE;
v_nb_articles NUMBER;
BEGIN
OPEN c_categories;
LOOP
FETCH c_categories INTO v_libelle_cat, v_nb_articles;
EXIT WHEN c_categories%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Catégorie: ' || v_libelle_cat || ' - Nombre d\'articles: ' || v_nb_articles);
END LOOP;
CLOSE c_categories;
END;
/

				
			

Résultat attendu :

La fonction articleparcategorie affiche pour chaque catégorie le nombre total d’articles présents.

Tests pratiques : Procédures PL/SQL

  • Test pour la procédure updatequantite

Ce test va appeler la procédure updatequantite pour mettre à jour la quantité en stock d’un article spécifique. Après l’exécution, vous pouvez vérifier le résultat en consultant la base de données.

				
					
 BEGIN
-- Appel de la procédure pour mettre à jour la quantité en stock de l'article "A001" avec une nouvelle quantité de 50
updatequantite(p_reference_article => 'A001', p_quantite => 50);
END;
/

				
			

Instructions de vérification :

Exécutez le test et observez le message Quantité mise à jour avec succès pour l’article A001 dans la console.

Mise à jour de la quantité pour article A001
  • Test pour la fonction valeurstock

Ce test va appeler la fonction valeurstock pour obtenir la valeur totale des articles en stock.

				
					
 DECLARE
v_valeur_total NUMBER;
BEGIN
-- Appel de la fonction pour calculer la valeur totale des articles en stock
v_valeur_total := valeurstock;
DBMS_OUTPUT.PUT_LINE('Valeur totale du stock : ' || v_valeur_total);
END;
/

				
			

Instructions de vérification :

Exécutez le test et observez la sortie Valeur totale du stock : <valeur> qui correspond à la somme totale des valeurs en stock calculées par la fonction.

La valeur affichée doit être égale à la somme de (QUANTITE_STOCK * PRIX_HT) pour chaque article dans ARTICLES.

Valeur totale du stock affichée: 7399
  • Test pour la fonction articleparcategorie

Ce test va exécuter le bloc de code contenant la fonction articleparcategorie pour afficher le nombre d’articles par catégorie.

				
					
 BEGIN
-- Exécution de la fonction non stockée pour afficher le nombre d'articles par catégorie
DECLARE
CURSOR c_categories IS
SELECT C.LIBELLE_CAT, COUNT(A.REFERENCE_ART) AS nb_articles
FROM CATEGORIES C
LEFT JOIN ARTICLES A ON C.CODE_CAT = A.CODE_CAT
GROUP BY C.LIBELLE_CAT;
v_libelle_cat CATEGORIES.LIBELLE_CAT%TYPE;
v_nb_articles NUMBER;
BEGIN
OPEN c_categories;
LOOP
FETCH c_categories INTO v_libelle_cat, v_nb_articles;
EXIT WHEN c_categories%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Catégorie: ' || v_libelle_cat || ' - Nombre d\'articles: ' || v_nb_articles);
END LOOP;
CLOSE c_categories;
END;
END;
/

				
			

Instructions de vérification :

Exécutez le test pour afficher les catégories et le nombre d’articles pour chacune,vous devriez voir des lignes comme

Catégories et nombre d'articles listés

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

Comment les procédures stockées fonctionnent-elles en PL/SQL ?
Les procédures stockées en PL/SQL sont des blocs de code précompilés qui peuvent être exécutés avec ou sans arguments. Elles permettent d’automatiser les tâches répétitives, d’optimiser les opérations de base de données et de favoriser la réutilisation du code. En passant des paramètres, elles peuvent modifier ou récupérer des données efficacement. Par exemple, la procédure ‘updatequantite’ met à jour la quantité en stock d’un article en fonction des paramètres fournis.
Quelles sont les différences entre les fonctions et les procédures en PL/SQL ?
En PL/SQL, les fonctions et les procédures sont similaires mais ont des rôles distincts. Les fonctions retournent toujours une valeur, qu’elle soit scalaire ou une table, et peuvent être intégrées dans des expressions SQL. Les procédures, quant à elles, n’ont pas de retour de valeur explicite et sont principalement utilisées pour exécuter des actions. Par exemple, ‘valeurstock’ est une fonction retournant la valeur totale des articles, tandis que ‘updatequantite’ est une procédure mettant à jour la base.
Quels sont les modes d'affectation des arguments en PL/SQL ?
Les modes d’affectation en PL/SQL sont cruciales pour la gestion des paramètres dans les procédures et fonctions. Le mode ‘IN’ est utilisé pour les valeurs en lecture seule, ‘OUT’ pour les valeurs retournées, ‘IN OUT’ pour les lectures et écritures simultanées, et ‘NOCOPY’ pour optimiser les performances en évitant la copie inutile de données. Ces modes permettent une utilisation flexible et efficace des ressources lors de l’exécution de programmes stockés.
Comment créer et tester une procédure stockée en PL/SQL ?
Pour créer une procédure stockée en PL/SQL, vous devez définir les paramètres d’entrée et le corps de la procédure qui exécute les actions requises. Une fois créée, vous pouvez tester la procédure en appelant son nom avec les arguments nécessaires. Par exemple, la procédure ‘updatequantite’ peut être testée en mettant à jour la quantité d’un article spécifique et en vérifiant le message de succès affiché.
Comment calculer la valeur totale des articles en stock avec PL/SQL ?
La fonction ‘valeurstock’ en PL/SQL calcule la valeur totale des articles en stock en multipliant la quantité par le prix unitaire de chaque article. Elle utilise une requête SQL pour agréger ces valeurs et retourne le total. Cette fonction est essentielle pour obtenir des données financières précises et peut être utilisée dans des rapports ou pour la prise de décisions commerciales.

Conclusion

En comprenant les programmes stockés PL/SQL, vous pouvez transformer vos opérations de base de données. Quels autres aspects du PL/SQL aimeriez-vous explorer pour optimiser votre flux de travail ?

É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 : Comprendre les Programmes Stockés en PL/SQL

© Alphorm - Tous droits réservés