Vous êtes sur la page 1sur 2

Module : Systme de Gestion des Bases de Donnes Travaux Pratiques N3 Procdures/Fonctions/Packages/Triggers

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

*Procdures
1. Ecrire une procdure stocke supprimer_pilote permettant de supprimer un pilote dont on spcifie le numro. a. Excuter la procdure dans lenvironnement SQL+ avec nopilot=3465. b. Vrifier la suppression en utilisant lordre SQL correspondant. 2. Ecrire une procdure stocke Comm_pilote permettant didentifier la commission dun pilote dont le numro est introduit par lutilisateur. -Si la commission est nulle alors le message commission nulle est affich. -Si non majorer la commission du pilote par un taux introduit par lutilisateur. La commission est affiche avant et aprs la mise jour. c. Excuter la procdure dans lenvironnement SQL+ avec les paramtres effectifs (nopilot=6589, txcomm=1.1) et avec ('3452', 1.2). d. Vrifier la mise jour en utilisant lordre SQL correspondant. 3. Afficher le code source de la procdure supprimer_pilote cre en 1. Utiliser la vue USER_SOURCE(NAME, TYPE, LINE, TEXT) . 4. Afficher la liste des objets de lutilisateurs en cours utiliser la vue user_objects 5. Afficher toutes les tables de lutilisateur en cours 6. Afficher la liste des procdures stockes par lutilisateur en cours. 7. Afficher la liste des procdures stockes par tous les utilisateurs.

*Fonction
8. Ecrire une fonction stocke max_h_v_type permettant de calculer le maximum des heures de vol des avions dont le type est introduit par lutilisateur. e. Dclarer une variable max_nbhvol de type NUMBER dans lenvironnement SQL+ f. Excuter cette fonction dans lenvironnement SQL+ avec type = 734. g. Afficher le contenu max_nbhvol.

9. Ecrire une fonction stocke pilote_avion_pilot qui retourne le nombre davion quun pilote donn a pilot. h. Dclarer une variable nbravion de type INTEGER dans lenvironnement SQL+ i. Excuter cette fonction dans lenvironnement SQL+ avec nopilot = 6723. j. Afficher le contenu cpt_avion 10. Afficher la liste des fonctions stockes cres par tous les utilisateurs. 11. Afficher la liste des fonctions stockes par lutilisateur en cours.

*Packages
12. Crer un package package_Srie3 permettant de regrouper les procdures et les fonctions cres en 1., 2., 8. et 9. 13. Afficher la liste des packages de lutilisateur en cours.

*Triggers
14. Crer un trigger pilote_insert qui permet de vrifier si le salaire dun pilote est <300. Si le cas se prsente, il insre automatiquement 700. Par exemple, si lutilisateur excute lordre SQL suivant : insert into pilote (NOPILOT,NOM,ADRESSE,SAL,COMM,EMBAUCHE) values('1235', 'ali', 'tunis' ,123.25, 1200.00,'12/02/02'); Le dclencheur pilote_insert sera excut et dans la base, luplet suivant est insr : NOPI NOM ADRESSE SAL COMM EMBAUCHE --------------------------------- ------------------------------ --------1234 ali tunis 700 1200 12/02/02 15. Crer un trigger pilote_embauche qui permet vrifier, lors de linsertion dun pilote, si la date dembauche est infrieure la date systme, dans le cas chant, afficher un message derreur La date est suprieure la date systme . k. Insrer dans la base lenregistrement suivant pour vrifier votre solution :

insert into pilote (NOPILOT,NOM,ADRESSE,SAL,COMM,EMBAUCHE) values('1236', 'ali', 'tunis' ,123.25, 1200.00,'10/07/05');