0% ont trouvé ce document utile (0 vote)
379 vues2 pages

TP PL/SQL : Triggers et Scripts SQL

Ce document décrit un TP sur PL/SQL contenant trois exercices. Le premier concerne les triggers, le deuxième les requêtes à résultat unique, et le troisième les requêtes à résultat multiple et l'utilisation des curseurs.

Transféré par

سوار الشابي
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
379 vues2 pages

TP PL/SQL : Triggers et Scripts SQL

Ce document décrit un TP sur PL/SQL contenant trois exercices. Le premier concerne les triggers, le deuxième les requêtes à résultat unique, et le troisième les requêtes à résultat multiple et l'utilisation des curseurs.

Transféré par

سوار الشابي
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Tunis El Manar Niveau : 2LFIG

Faculté des Sciences Economiques et de Gestion de Tunis Matière : SGBD


Responsable du cours : F. Kboubi

TP – PL/SQL

Importation :

Importer dans oracle la base de données à partir du fichier sql tennis_oracle.sql.

Le schéma de la base que vous venez d’importer est :

• JOUEUR (NUJOUEUR, NOM, PRENOM, ANNAIS, NATIONALITE)


• GAIN (NUJOUEUR*, LIEUTOURNOI, ANNEE, PRIME, SPONSOR)
• RENCONTRE (NUGAGNANT*, NUPERDANT*, LIEUTOURNOI, ANNEE)

EXERCICE 1 : LES TRIGGERS


1. Que fait le trigger défini dans le script tennis_oracle.sql ?
2. Ecrire un trigger nommé trig1 qui à chaque insertion dans la table Joueur transforme le
champ Nom en majuscule.
3. Tester ce trigger en exécutant la requête suivante :
INSERT INTO Joueur (Nom, Prenom, AnNais, Nationalite)
VALUES ('gasket', 'Richard', 1986, 'France') ;
4. Modifier le trigger précédent pour pouvoir gérer de la même façon les mises à jour de
Nom dans Joueur.
5. Tester le trigger trig1 en exécutant la requête suivante :
UPDATE Joueur SET Nom='Gasquet' WHERE Nom='GASKET' ;
6. Ecrire un trigger trig2 qui se déclenche avant l'insertion d'un tuple dans la table Gain, et
qui transforme la valeur de la prime en euro si la date du tournoi est antérieure à 2001.
Taux de conversion : 1 franc = 0,152 €
7. Tester ce trigger en exécutant les requêtes suivantes :
• INSERT INTO Gain VALUES (1, 'Roland Garros', 2001, 100, 'Nike') ;
• INSERT INTO Gain VALUES (1, 'Roland Garros', 2000, 100, 'Nike') ;

Pensez à supprimer ces insertions avant de poursuivre :

• DELETE FROM Gain WHERE Prime=100;


• DELETE FROM Gain WHERE Prime=100*0.152;

Exercice 2 : PL/SQL : Requêtes à résultat unique

1. Ecrire un script moyennePrime.sql permettant de :


• prendre en entrée un lieu de tournoi et une année (saisies utilisateur)
• fournir en sortie la moyenne des primes obtenues lors du tournoi pour cette année
• effectuer une gestion d'exception si la moyenne des primes est null.
2. Tester le script pour :
• Roland Garros 1992
• Wimbledon 2000

1
3. Ecrire un script moyennePrime2.sql similaire, mais sans utiliser d'exception.
(Aide : Il suffit pour cela d'effectuer l'affichage avec une condition if...then...else...)

Tester le script pour :

• Roland Garros 1992


• Wimbledon 2000

EXERCICE 3 : PL/SQL : REQUETES A RESULTAT MULTIPLE, UTILISATION DES


CURSEURS
1. Ecrire un script primeJoueur.sql permettant de :
• prendre en entrée deux année (saisies utilisateur)
• fournir en sortie pour chaque joueur la plus forte prime qu'il a touchée entre les
deux années saisies par l'utilisateur

Tester avec :

• (Année de départ : 1989, Année de fin : 1992)


• (Année de départ : 1974, Année de fin : 1985)

2. Ecrire le script joueurSponsor.sql permettant de :


• prendre en entrée le nom du sponsor (saisie utilisateur)
• fournir en sortie le nom des joueurs sponsorisés par le sponsor saisi par l'utilisateur

Tester avec :

• Reebok
• Diadora
• Toto

Vous aimerez peut-être aussi