Vous êtes sur la page 1sur 2

République Tunisienne

Ministère de l'Enseignement Supérieur et de la Recherche Scientifique


Institut Supérieur des Etudes Technologiques de Mahdia
Département Technologie de l’Informatique

TP 3 PL/SQL : Les Curseurs & Les Exceptions


Matière : SGBD Classe : DSI4
Enseignante : Nahla SASSI Année Universitaire : 2022/2023

Dans cet atelier nous allons travailler sur la base Gestion d’employés, dont le script de
création et d’insertion des données est disponible dans la page du cours. Télécharger le et
exécuter le pour pouvoir répondre aux exercices suivants.
La base est définie par les tables suivantes :

DEPT (DEPTNO, DNAME, LOC)


EMP (EMPNO, ENAME, JOB, MGR#, HIREDATE, SAL, COMM, DEPTNO
#) SALGRADE (GRADE, LOSAL, HISAL)

Travail demandé :
1. Ecrire un bloc PL/SQL qui permet de calculer le nombre des employés embauchés
durant l’année 2019.
NB : vous devez traiter une exception.
2. Ecrire un bloc PL/SQL qui :
- Déclare un curseur explicite paramétré (P_Deptno et P_Job) ramenant : EMPNO,
ENAME et SAL des employés travaillant dans le département P_Deptno et ayant la
fonction P_Job.
- Affiche les lignes des curseurs ;

NB : Vous devez traiter les cas où le numéro de département et la fonction n’existent


pas
2.1. Répondre en utilisant la boucle LOOP .. END LOOP.
2.2. Simplifier votre réponse en utilisant la boucle FOR.

3. Ecrire un bloc PL/SQL qui affiche pour chaque département le nom, la localité et le
nombre de ses employés (résultat trié par deptno).
3.1. Répondre en utilisant un curseur.
3.2. Répondre en utilisant un curseur explicite sur la table département et un curseur
implicite pour compter le nombre d’employés pour un département.
Répondre en utilisant deux curseurs explicites.
3.3.
NB : Traiter une exception dans le cas où le nombre des employés d’un département est
égal à zéro. Afficher un message d’erreur comme suit :

1
Le département « dep1 » a 0 employés,
Le département « dep5 » a employés,
Le département « dep7 » a employés,
…..
4. Curseur de mise à jour :
4.1. Etendre la table DEPT par la nouvelle colonne NBEMP NUMBER(2) représentant le
nombre d’employés (initialisée à zéro par défaut).
4.2. Ecrire un bloc qui met à jour cette colonne pour tous les départements.
4.3. Répondre avec un curseur explicite sur la table DEPT et un curseur implicite de mise à
jour utilisant WHERE CURRENT OF.

Vous aimerez peut-être aussi