Series Exercice corrigé PL-SQL Exercices Oracle SQL
Objectif : Mettre en œuvre pratiquement vos connaissances en langage PL/SQL d'Oracle.
Exercice 1
2001, il est temps de passer à l’Euro pour l’entreprise de VPC dont la base de données CLIENT- COMMANDE-PRODUIT-FOURNISSEUR sert d’exemple dans le cours. Écrire un programme PL/SQL permettant de construire, à partir de la table PRODUIT, une table PRODUIT2000 telle que :
- la désignation des produits soit écrite en majuscules ;
- le prix unitaire en francs des produits soit converti en Euros. Le prix en Euros devra être entier (arrondir au supérieur).
Cas particuliers à traiter :
- Si la table PRODUIT est vide, la table PRODUIT2000 devra contenir uniquement le tuple (0,’Pas de produit’, NULL, NULL).
- Si un prix de la table produit est NULL, son prix en Euros doit être 0.
Indications :
- Considérer que la structure de la table PRODUIT2000 a déjà été créée.
- Tester si la table PRODUIT est vide. Si ce n’est pas le cas, y accéder séquentiellement à l’aide d’un curseur, effectuer les transformations sur les champs et stocker le résultat dans la table PRODUIT2000.
- Utiliser les fonctions SQL*Plus UPPER, TRUNC et NVL.
Exercice 2
Pour tenter d’établir une corrélation, on souhaite connaître la différence de quantité moyenne entre les commandes successivement enregistrées dans la table COMMANDE de la base de données CLIENT- COMMANDE-PRODUIT-FOURNISSEUR. La table COMMANDE est remplie de commandes va- luées (c’est-à-dire, pour lesquelles l’attribut QUANTITE n’est pas NULL) ou non. Les commandes non valuées ne sont pas à prendre en compte. Écrire un programme PL/SQL permettant de calculer la diffé- rence de quantité moyenne entre les commandes.
Cas particuliers à traiter :
- La table COMMANDE contient moins de deux commandes valuées.
Indications :
- Créer un curseur contenant les quantités de commandes valuées.
- Lire la première quantité puis, pour toutes les quantités suivantes, cumuler la valeur absolue de quantité courante – quantité précédente (fonction ABS).
- Afficher le résultat dans une exception à l’aide de la procédure RAISE_APPLICATION_ERROR.
- Utiliser l’opérateur de concaténation || et la fonction TO_CHAR.
Essayez de réaliser une solution par vous-même. Vous pourrez retrouver la correction de ces exercices ICI.
Article plus récent Article plus ancien