1
Exercice 1 :
En utilisant les curseurs, donner un programme PL/SQL permettant de :
1. Lister tous les noms des opérations dont le nom d’opération est soit ‘Divers’ soit
‘Cadeau’.
2. Lister toutes les opérations dont la date d’opération est entre ’25 /11 /01’ et ’30 /11 /01’.
La liste doit être classée par ordre décroissant des dates d’opération.
Exercice 2 :
On souhaite à présent effectuer des traitements sur plusieurs colonnes en même temps.
L’objectif de cet exercice est de construire une table Courses, qui contient toutes les
opérations pour lesquelles le nom de l’opération est ‘Courses’, à partir de la table Budget. La
table Courses doit contenir les colonnes suivantes : Num_operation, Nom_operation,
Categorie, Date_operation et Montant.
Pour cela, il faut définir un curseur qui va parcourir toute la table Budget. Pour chaque
ligne que va traiter le curseur, le programme devra déterminer si elle doit être insérée dans la
table Budget.
Exercice 3 :
PL/SQL offre la possibilité de gérer les erreurs : si un traitement est susceptible de générer
une erreur qui peut faire échouer un programme, il est possible de capter cette erreur et de
proposer un traitement spécifique pour le cas où cette erreur surviendrait.
On souhaite générer une erreur si le montant des dépenses de remboursement est trop élevé
(supérieur à 2000DH).
Écrire un programme PL/SQL qui génère une exception si le montant d’une opération de
type ‘Remboursement’ est supérieur strictement à 2000DH : si une telle opération est trouvée,
elle sera supprimée de la table car elle correspond à une erreur (Utilisant CURSOR et
EXCEPTION).
Exercice 4 :
Afin d’établir une corrélation, on souhaite connaitre la différence de solde moyenne entre
les opérations successivement enregistrées dans une table Budget. Écrire un bloc PL/SQL
anonyme permettant de calculer la différence de solde moyenne entre les opérations.
Exemple :
Résultat attendu =
(10 4 20 10 6 20)/3 10
Exception : interrompre le programme immédiatement si la table Budget contient moins de
deux valeurs non nulles.
Administration des bases de données
avancées