Vous êtes sur la page 1sur 3

Module : Administration des Bases de Donnes Travaux Pratiques N1

Soit le schma relationnel concernant la gestion (trs simplifie) du transport arien :

Affectation Vol Novol Vildep Vilar Deph Depmn Arrih Arrimn chjour Vol Date_Vol Pilote Avion Nbpass

Avion Nuavion Type Annserv Nom Nbhvol

Appareil Pilote Nopilote Nom Adresse Sal Comm Embauche codetype nbplace Design

Remarques et Recommandations : 1) Pour chacune des questions suivantes, crer un nouveau bloc note, crire le bloc PL-SQL correspondant et lexcuter sous lenvironnement SQL+, en utilisant lordre SQL suivant : SQL> START c:\chemin\nom.txt Ou bien SQL> @ c:\chemin\nom.txt 2) Si des erreurs de syntaxe existent dans le bloc cre alors, le moteur SQL va afficher des messages derreurs quil faut corriger et r excuter de la mme manire que dans 1) jusqu ce que le message Procdure PL/SQL termine avec succs. saffiche. Si lexcution ne retourne aucun rsultat, le message derreur suivant saffiche : ORA-01403: Aucune donne trouve 3) Pour quun commentaire ou bien une valeur soit affiche, il faut excuter tout dabord lordre sql suivant sous lenvironnement SQL+ : SQL> SET SERVEROUTPUT ON; 4) Chaque bloc cre se termine obligatoirement par un / , si non le moteur dexcution demandera indfiniment la fin du bloc.

Questions :

*Type scalaires : Dclaration dun type simple 1) Ecrire un bloc PL/SQL qui permet dafficher le nombre de pilote existants dans la base. Le rsultat sera affich de la manire suivante : Le nombre de pilotes existants dans la base est de : 11 2) Ecrire un bloc PL/SQL qui permet dafficher la commission et la date dembauche du pilote qui a le salaire le plus lev. Le rsultat sera affich de la manire suivante : Commission: 0 Date Embauche : 15/03/93 *Type scalaires : Dclaration dun type faisant rfrence une table 3) Ecrire un bloc PL/SQL qui permet dafficher le nom et le salaire du pilote dont le numro est 6723. Le rsultat sera affich de la manire suivante : le nom du pilote est : MARTIN le salaire est : 23150 4) Ecrire un bloc PL/SQL qui permet dafficher le nom de lavion ayant effectue plus cinq vols. Le rsultat renvoy aprs lexcution est le suivant : declare * ERROR la ligne 1 : ORA-01403: Aucune donne trouve ORA-06512: ligne 4 *Type compos 5) Ecrire un bloc PL/SQL qui permet dafficher le nom et le salaire du premier pilote embauch. Proposer deux solutions diffrentes, la premire en se basant sur les types scalaires et la deuxime sur les types composs. Dans les deux solutions, le rsultat sera affich de la manire suivante : le nom du pilote est : DUVAL le salaire est : 18600 6) Ecrire un bloc PL/SQL qui permet dafficher le code type et le nombre davion de lappareil AB3. Proposer deux solutions diffrentes, la premire en se basant sur les types scalaires et la deuxime sur les types

composs. Dans les deux solutions, le rsultat sera affich de la manire suivante : le code type: AB3 le nombre davion: 2 *Initialisation des variables 7) Ecrire un bloc PL/SQL qui permet dinsrer lenregistrement suivant dans la table Appareil. Appareil Codetype 735 nbplace 450 design 737-400

-Vrifier si lenregistrement a t effectu en utilisant lordre SQL correspondant. -Ajouter dans le bloc PL-SQL lordre ncessaire permettant de valider linsertion. 8) Ecrire un bloc PL/SQL qui permet de calculer la moyenne du nombre des heures de vols des avions. La moyenne par dfaut est de 13000. *Structures conditionnelles 9) Ecrire un bloc PL/SQL qui permet de majorer le salaire de 12% du pilote N1333, si et seulement si la valeur de sa commission dpasse la valeur de son salaire. Dans tous les cas, tenir compte dun message indiquant si son salaire est major de 12% ou bien affich salaire inf la commission .