TD/TP N°02 PL/SQL-ORACLE - Procédures, Fonctions & Packages
Procédures Stockées
1) Ecrire une procédure « AJOUT_PILOTE » qui permet la création d’un nouveau pilote.
2) Ecrire une procédure «SUPPRIME_PILOTE» qui permet la suppression d’un pilote à partir de son
numéro.
3) Modifier la procédure «SUPPRIME_PILOTE» de façon à vérifier que le pilote n’est affecté à aucun vol
avant toute suppression.
4) Ecrire une procédure stockée nommé «AFFICHE_PILOTE_N » permettant d’afficher les noms des n
premiers pilote de la table PILOTE. La variable n devra être le paramètre d’entrée.
Gérer le cas ou n est plus grand que le nombre de n_uplets de la table PILOTE.
Indication
Curseur%ROWCOUNT : nombre de lignes traités par l’ordre SQL, évolue à chaque ligne distribuée
Curseur%NOTFOUND : vrai si exécution incorrecte de l’ordre SQL
Fonctions Stockées
1) Ecrire une fonction « HMOYEN_VOL » qui permet de calculer le nombre moyen d’heures de vol des
avions appartenant à une famille dont le code est transmis en paramètres.
2) Écrire une fonction qui effectue la conversion des Euros en Dirhams. 1€ =11,48 DH
Gérer toutes les exceptions possibles
Paquetages
1) On désire mettre en place un package (GEST_PILOTE) logiciel permettant de gérer la table PILOTE.
L’objectif est de disposer de procédures permettant de :
− Afficher le contenu de la table au format Numéro : Nom Prénom (Ville) - Salaire ;
− Une procédure qui génère un message d’erreur si la commission est supérieure au salaire pour un
pilote donnée.
− Une fonction qui retourne le nombre de pilote commençant par « Ah » (utiliser un curseur pour l’ordre
select).
− Procédure qui permet de supprimer un pilote de numéro connu.
− Une fonction qui calcule le nombre moyen d’heures de vol des avions d’une famille donnée.
− Une procédure nommée «modifier » permettant de modifier dans la table pilote un pilote dont le
numéro, nom, prénom, ville et salaire sont passés en paramètres.
2) Définir les spécifications d’un paquetage nommé PKG_REEL contenant :
− Un type collection de réels TABLE nommé « TabReels » ainsi qu’une variable « tab » de ce type.
− Une fonction de nom « MonMAx » prenant en paramètres d’entrée deux réels (a,b) et renvoyant un
réel égal au plus grand des deux paramètres.
1
− Une fonction de nom « MultiMax » prenant en paramètre d’entrée un « TabReels » et renvoyant le
plus grand nombre contenu dans ce tableau. Faire appel à la fonction «MonMAx » pour effectuer le
traitement.
Ajouter à la fonction « MultiMax » un traitement d’exception déclenchant une erreur fatale lorsque la
table passée en paramètre est vide.
− Une procédure de nom « Tri » permettant de trier par ordre croissant le contenu d’un «TabReels »
passé en paramètre. On pourra programmer un simple tri par permutation.
3) Définir le corps du paquetage nommé PKG_REEL.