Vous êtes sur la page 1sur 2

TP N° 3 

Le langage PL-SQL - Initiation

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

Affectation
Vol
Vol
Novol Date_Vol
Vildep Pilote Avion
Vilar Avion
Deph Nbpass Nuavion
Depmn Type
Arrih Annserv
Arrimn Nom
chjour Nbhvol
Appareil

Pilote codetype
nbplace
Nopilote Design
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é, 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