Vous êtes sur la page 1sur 3

Module : Administration et Scurit des Bases de Donnes Travaux Pratiques N2 Curseurs, Exceptions

On se place toujours au niveau de la base de donnes trs simplifie Gestion du transport arien .(voir schma relationnel TP N1).

*Curseur
1- Ecrire un bloc PL-SQL permettant dafficher les noms et les adresses des pilotes dont le salaire dpasse 22000. Le rsultat sera affich de la manire suivante :
Adresse du pilote FEDOI est: NANTES Adresse du pilote ANDRE est: NICE Adresse du pilote BARRE est: LYON Adresse du pilote MARTIN est: ORSAY

2- Ecrire un bloc PL-SQL permettant dafficher toutes les informations concernant les avions dont le nombre des heures de vol dpassent de plus que 25 la moyenne des nbhvol de toutes les avions de la base. Utiliser la notion %ROWTYPE. Le rsultat sera affich de la manire suivante :
Avion: 8832, Type: 734, Anne de mise en service: 1988, Nom avion: Ville de Paris, Nombre heure de vol: 16000 Avion: 7693, Type: 741, Anne de mise en service: 1988, Nom avion: Pacifique, Nombre heure de vol: 34000

3- Ecrire un block PL-SQL permettant : 1didentifier la liste des pilotes qui ont t affects un seul vol. Utiliser un curseur C3. 2Insrer cette liste dans un tableau T1 dont le contenu est de type scalaire faisant rfrence la table pilote.nopilot. 3Pour chaque pilote insrer la commission correspondante dans un deuxime tableau T2 dont le contenu est de type scalaire faisant rfrence la table pilote.comm. 4Rduire la commission de chaquun de ces pilotes de 5% et insrer le rsultat de chaque rduction dans un troisime tableau T3. 5Afficher le contenu des 3 tableaux T1, T2 et T3. Le rsultat sera affich de la manire suivante :
La liste des pilotes: 1- 1333 2- 6589 3- 7100

4- 3452 5- 3421 6- 6548 La liste des commissions avant la rduction: 1- 0 2- 5580 3- 16000 456- 8600 La liste des commissions aprs la rduction: 1- 0 2- 5301 3- 15200 456- 8170

4- Mme question que 3- mais en utilisant la forme syntaxique condense. 5-Ecrire un bloc PL-SQL permettant dafficher les noms des pilotes dont les salaires dpassent 1500 et que la comm est inf 20% du salaire. Afficher les noms des pilotes et leurs dates dembauche. Proposer deux solutions : la premire en utilisant un curseur non paramtr et la deuxime, en utilisant un curseur paramtr. Le rsultat sera affich de la manire suivante :
Noms : Date Embauche: FEDOI 15/03/93 COLLET 15/04/93

*Exception
6- Ecrire un bloc PL-SQL permettant dafficher le nom, adresse, sal et la comm dun pilote particulier. -Utiliser lexception prdfinie par oracle NO_DATA_FOUND. -Si la commission est > au salaire dclencher une exception et afficher le message derreur suivant : La commission est suprieur au salaire -Si la commission est nulle dclencher une exception et afficher le message derreur suivant : commission nulle . -Excuter votre programme avec les restrictions suivantes : -nopilot=1333, 3452, 7100 et 5555. Dans chaque cas, vrifier lexception dclenche. 7- Ecrire un bloc PL-SQL permettant dafficher les noms des pilotes dont les salaires dpassent 15900 . -Si la condition est vrifie alors le nom du pilote sera automatiquement affich. -Si la comm du pilote est nulle une exception est automatiquement dclenche affichant le message la Commission du pilote .. est nulle.

-Si le salaire > 30000 alors dclencher une exception excep_trait permettant dinsrer le nom et le salaire du pilote dans une table pilote_sal.