Génie Informatique - S3 Pr. ZANNOU ABDERRAHIM ENSA Hoceima Administration des bases de données 2021/2022 TP3avancées 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 : Solde 4 null 10 20 6 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. 1