FACULTE DES SCIENCES ET TECHNIQUES كــليـــــة العــلـــــــوم
MARRAKECH والتـقـنـيـــات
مــــــراكـش
Le 30/11/2018
SIR : S5 SGBD/SGBDR TP N°1 : PL/SQL
Rappels :
1) Curseur implicite : Quand on écrit une requête sans l'affecter explicitement à un curseur,
elle occupe une zone mémoire qui est représentée implicitement par un curseur non
déclaré par le programmeur
2) Curseur explicite : est un curseur portant un nom et permettant de stocker le résultat d’une
requête.
3) Un bloc anonyme est un bloc begin ……end ; qui ne comporte pas un nom
a. Oracle utilise les curseurs implicites pour analyser et exécuter les énoncés de
SQL
b. Les curseurs explicites sont déclarés explicitement par le programmeur
Page 1 sur 3
Exercice N°1 : Curseurs implicites et bloc anonymes
Remplir ces tables par 5 lignes à votre choix
N/B : n’oubliiez pas de saisir le numéro 111 dans la table Etudiant
Et le département computer dans la table dep
1. Ecrire un bloc anonyme PL/SQL pour afficher le nom de l’étudiant numéro 111. (table ETUDIANT)
2. Ecrire un bloc anonyme PL/SQL pour afficher les données du département ‘COMPUTER’. (table DEP )
Solution 1 : utilisation de deux variables V_nom et V_num et la propriété %TYPE
Solution 2 : utilisation d’une variable v_dep et la propriété %ROWTYPE
3. Améliorer le dernier bloc créé pour afficher le nombre d’étudiants de ce département.
Solution 1: Jointure entre table ETUDIANT et table DEP
Page 2 sur 3
Solution 2: Utilisation de la table ETUDIANT seulement
Exercice N°2 : Curseurs explicites
1. Ecrire un bloc anonyme PL/SQL qui permet d’afficher les noms des étudiants dont leur
grade est supérieur à 58 dans le cours numéro 102.
Exercice N°3 : Exceptions
1. Modifier le dernier bloc créé en prévoyant l’exception NO_DATA_FOUND
2. Créer une exception nommé exp_cours à lancer en cas où le numéro du cours fournit
en argument du curseur est égal à 0.
Exercice N°4 :
1. Etendre la table DEP par une nouvelle colonne NBETUD NUMBER(2) représentant le
nombre d’étudiants (0 par défaut).
2. Ecrire un bloc qui met à jour cette colonne pour tous les départements.
Exercice N°5:
On souhaite éditer la liste des étudiants de chaque département de la manière suivante :
Département : (Nom du département)
Numéro Etudiant Nom Etudiant
……………… ………………
……………… ………………
……………… ………………
Les départements doivent être triés par ordre Croissant de deptno. Les étudiants d’un même
département seront triés par ordre croissant de stdno.
Page 3 sur 3