0% ont trouvé ce document utile (0 vote)
33 vues3 pages

TP2PLSQL

Le document présente des exercices de programmation en PL/SQL pour des étudiants en informatique, axés sur l'utilisation de curseurs paramétrés et de triggers. Les exercices incluent la création et la manipulation de tables liées à des clients, des comptes, des opérations, ainsi que des étudiants et des modules. Les étudiants doivent également implémenter des contraintes et des déclencheurs pour gérer les règles d'intégrité des données dans la base de données.

Transféré par

dohaayou5
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)
33 vues3 pages

TP2PLSQL

Le document présente des exercices de programmation en PL/SQL pour des étudiants en informatique, axés sur l'utilisation de curseurs paramétrés et de triggers. Les exercices incluent la création et la manipulation de tables liées à des clients, des comptes, des opérations, ainsi que des étudiants et des modules. Les étudiants doivent également implémenter des contraintes et des déclencheurs pour gérer les règles d'intégrité des données dans la base de données.

Transféré par

dohaayou5
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É CHOUAIB DOUKKALI Année universitaire : 2024-2025

FACULTÉ POLYDISCIPLINAIRE-SIDI BENNOUR

DEPARTEMENT INFORMATIQUE

Oracle DBA-TP2PL/SQL

Part I: Curseurs paramétrés

Exercice 1
L’intérêt de ces exercices étant de vous familiariser avec les curseurs paramètres, vous ferez
en sorte de ne pas contourner leur usage. Nous utiliserons les données suivantes :

1- CLIENT(numCli, nomCl i ) , p r e n omCl i ) , a d r e s s e , t e l )


PERSONNEL ( numpers , nompers , prenompers , manager, s a l a i r e)
TYPECCL ( numtypeccl, nomtypeccl )
COMPTECLIENT ( #num c l i, numccl, d a t e c c l l ,# numpers,# numtypeccl)
TYPEOPERATION ( numtypeoper, nomtypeoper )
OPERATION ( #num c l i, #numccl, #numoper, numtypeoper, d a t e o p e r , montantoper ,
libeloper )
2- Ajouter les contraintes nécessaires :clés primaires et étrangères

3- Ecrire une procédure qui affiche tous les clients, et pour chaque client, la liste des
comptes.

Exercice 2

1- Ecrire une procédure qui affiche tous les clients, et pour chaque client, la liste des
comptes, et pour chacun de ces comptes, l’historique des opérations.

Part II: Triggers


Exercice1

Créer un utilisateur, puis connectez-vous par le compte crée.

1- Créer la table client(NumClient,nom,prénom,ville), et remplir la table de 6


enregistrements.
2- Créer un curseur, permettant de récupérer le nom et la ville de 5 clients(table client).
3- Augmenter le nombre des clients récupérés par le curseur à 10 lignes, qu’est ce que
vous remarquez ?
4- Faites les modifications nécessaires pour régler le problème.
5- Utiliser la boucle loop uniquement en ajoutant une condition d’arrêt.
UNIVERSITÉ CHOUAIB DOUKKALI Année universitaire : 2024-2025

FACULTÉ POLYDISCIPLINAIRE-SIDI BENNOUR

DEPARTEMENT INFORMATIQUE

6- Créer table pilote(numpl,nom,ville) et la table


vols(numvol,numAv,numpl,vdepart,varrive,hdepart,harrive)
7- Ajouter le champ Nbrevol à la table Pilote initialisé à 0 puis afficher ses lignes.
8- Créer le déclencheur INSERT_VOL pour la mise à jour automatique de nombre de
vols.
9- Insérer un vol puis afficher les lignes de la table pilote.
10- Créer un déclencheur ayant comme contrainte : Un pilote ne doit pas effectuer 2 vols
par jour.

Exercice 2

A-Base de Données
1-Créer les tables suivantes :
Etudiant(numEtu, nom, prenom, date_naiss, civilite, moyenne)
Module(codeMod,nomMod,effecMax, effectif)
Examen(#codeMod, codeExam,dateExam)
Inscription(#numEtu,#codeMod,date_Insc)
Prerequis(#codeMod,codeModPrereq, noteMin)
Resultat(#codeMod,#codeExam,#numEtu,note)

B- Triggers
1- Implémentez les contraintes suivantes (données de la base de données ci-dessus) :
1. Il ne doit pas être possible de modifier la note min dans la table prerequis.
2. Dans un module, il ne doit pas y avoir plus de effecMax des élèves inscrits. Pour cela on
procède comme suit :
a- créer deux procédures , une pour incrémenter l’effectif et l’autre pour décrémenter
l’effectif( les deux procédures prennent en paramètre le code du module)
b- Créer un trigger, permettant de mettre à zero l’effectif avant l’insertion d’un
nouveau module.
c- Créer un trigger, permettant d’incrémenter le code du module après l’insertion
d’une ligne dans la table inscription.
d- c- Créer un trigger, permettant de décrémenter le code du module après la
suppression d’une ligne dans la table inscription.
e- Créer une vue ModAvailable, permettant de récupérer les codes des modules de la
table module dont l’effectif est inférieur à l’effectif maximal.
f- Créer un trigger permettant d’afficher l’erreur ‘No place available’ si le nombre de
lignes de la table ModAvailable est égal à 0, le trigger est déclenché avant l’insertion ou la
mise à jour de la table inscription.

3. On ne peut créer un examen pour un module que s'il y a des élèves inscrits dans ce module.
Pour cela on procède comme suit :
a- Créer une vue examenPossible, permettant de récupérer les codes des modules si le
nombre des modules de la table inscription est supérieur à zéro.
b- Créer un trigger permettant d’afficher l’erreur ‘module unavailable’ si le nombre de
lignes de la table examenPossible est égal à 0, le trigger est déclenché avant l’insertion ou la
mise à jour de la table examen.
UNIVERSITÉ CHOUAIB DOUKKALI Année universitaire : 2024-2025

FACULTÉ POLYDISCIPLINAIRE-SIDI BENNOUR

DEPARTEMENT INFORMATIQUE

4. Un élève ne peut passer un examen que si sa date d'inscription est antérieure à la date de
l'examen. On peut procéder comme suit :
a- Créer une vue ExamEtudiants, permettant de récupérer les étudiants dont la date
d’inscription est strictement inférieure à la date d’examen.
b- Donner un trigger, permettant d’afficher l’erreur ‘examen antérieur à l’inscription dans le
module’ si la vue ExamEtudiants ne contient pas d’enregistrement. Le trigger est déclenché
avant l’insertion ou la mise à jour de la table resultat.

Vous aimerez peut-être aussi