Vous êtes sur la page 1sur 3

Module :

Administration des Bases de Données

Travaux Pratiques
N°1

Soit le schéma relationnel concernant la gestion (très simplifiée) du transport aérien :

Affectation
Vol Vol
Novol Date_Vol
Vildep Pilote
Vilar Avion
Avion
Deph Nbpass
Depmn Nuavion
Arrih Type
Arrimn Annserv
chjour Nom
Nbhvol
Appareil
codetype
Pilote
nbplace
Design
Nopilote
Nom
Adresse
Sal
Comm
Embauche

Remarques et Recommandations :

1) Pour chacune des questions suivantes, créer un nouveau bloc note, écrire le bloc
PL-SQL correspondant et l’exécuter sous l’environnement SQL+, en utilisant
l’ordre 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 crée alors, le moteur SQL va
afficher des messages d’erreurs qu’il faut corriger et ré exécuter de la même
manière que dans 1) jusqu’à ce que le message « Procédure PL/SQL terminée
avec succès. » s’affiche. Si l’exécution ne retourne aucun résultat, le message
d’erreur suivant s’affiche : « ORA-01403: Aucune donnée trouvée »
3) Pour qu’un commentaire ou bien une valeur soit affichée, il faut exécuter tout
d’abord l’ordre sql suivant sous l’environnement SQL+ :
SQL> SET SERVEROUTPUT ON;
4) Chaque bloc crée se termine obligatoirement par un ‘/’ , si non le moteur
d’exécution demandera indéfiniment la fin du bloc.
Questions :
*Type scalaires : Déclaration d’un type simple

1) Ecrire un bloc PL/SQL qui permet d’afficher le nombre de pilote existants


dans la base. Le résultat sera affiché de la manière suivante :
Le nombre de pilotes existants dans la base est de :
11
2) Ecrire un bloc PL/SQL qui permet d’afficher la commission et la date
d’embauche du pilote qui a le salaire le plus élevé. Le résultat sera affiché
de la manière suivante :
Commission:
0
Date Embauche :
15/03/93

*Type scalaires : Déclaration d’un type faisant référence à une table

3) Ecrire un bloc PL/SQL qui permet d’afficher le nom et le salaire du pilote


dont le numéro est 6723. Le résultat sera affiché de la manière suivante :
le nom du pilote est : MARTIN
le salaire est : 23150
4) Ecrire un bloc PL/SQL qui permet d’afficher le nom de l’avion ayant
effectuée plus cinq vols. Le résultat renvoyé après l’exécution est le
suivant :

declare
*
ERROR à la ligne 1 :
ORA-01403: Aucune donnée trouvée
ORA-06512: à ligne 4

*Type composé

5) Ecrire un bloc PL/SQL qui permet d’afficher le nom et le salaire du


premier pilote embauché. Proposer deux solutions différentes, la première
en se basant sur les types scalaires et la deuxième sur les types composés.
Dans les deux solutions, le résultat sera affiché de la manière suivante :
le nom du pilote est : DUVAL
le salaire est : 18600

6) Ecrire un bloc PL/SQL qui permet d’afficher le code type et le nombre


d’avion de l’appareil ‘AB3’. Proposer deux solutions différentes, la
première en se basant sur les types scalaires et la deuxième sur les types
composés. Dans les deux solutions, le résultat sera affiché de la manière
suivante :
le code type: AB3
le nombre d’avion: 2

*Initialisation des variables

7) Ecrire un bloc PL/SQL qui permet d’insérer l’enregistrement suivant dans


la table Appareil.
Appareil

Codetype nbplace design


735 450 737-400

-Vérifier si l’enregistrement a été effectué en utilisant l’ordre SQL


correspondant.
-Ajouter dans le bloc PL-SQL l’ordre nécessaire permettant de valider
l’insertion.

8) Ecrire un bloc PL/SQL qui permet de calculer la moyenne du nombre des


heures de vols des avions. La moyenne par défaut est de 13000.

*Structures conditionnelles

9) Ecrire un bloc PL/SQL qui permet de majorer le salaire de 12% du pilote


N°1333, si et seulement si la valeur de sa commission dépasse la valeur de
son salaire.
Dans tous les cas, tenir compte d’un message indiquant si son salaire est
majoré de 12% ou bien affiché « salaire inf à la commission ».

Vous aimerez peut-être aussi