Vous êtes sur la page 1sur 3

Module : Bases de données Avancées

Abir Gorrab
4ème ING TP2 : Introduction à PL/SQL
2020/2021

Exercice 1

Parmi les déclarations de variables suivantes, déterminer celles qui sont incorrectes :

a– DECLARE f- DECLARE
v_var NUMBER(4); nom char (15) ;
numéro number ;
b - DECLARE date_jour date ;
v_x1,v_x2,v_x3 salaire number (7,2) ;
NUMBER(10); compteur NUMBER(2) default 0 ;
g- Declare
c - DECLARE Date1 DATE;
v_date_naiss DATE NOT NULL; Date2 Date1%Type;
h- DECLARE
d - DECLARE emp employe;
v_b BOOLEAN := 1;
i- rec_dept departement%ROWTYPE ;
e - DECLARE
v_ok, v_n := ‘yes’, 1 ;

Exercice2

Expliquer le fonctionnement désiré par ces blocs PL/SQL et déterminer l’erreur si elle existe.

Exemple 1 :
BEGIN
INSERT INTO emp(empno,ename) VALUES (1,’ali’) ;
CREATE TABLE valide(n NUMBER(2)) ;
END ;

Exemple 2 :
DECLARE
chaine varchar2(10) :=’Bonjour’ ;
BEGIN
DBMS_OUTPUT.PUT_LINE(‘la chaine est’||chaine) ;
END ;

Exemple 3 :
DECLARE
nom_emp varchar2 (15) ;
salaire emp.sal%TYPE ;
BEGIN
select ename, sal, comm, dname
into nom_emp, salaire
from emp, dept
END ;

Exemple 4 :
ACCEPT nom_prod PROMPT ‘nom du produit désiré’
DECLARE
qte_stock number (5) ;
BEGIN
select quantite into qte_stock
from stock
where produit = ‘&nom_prod’ ;
END ;

Exemple 5 :
variable var1 number ;
DECLARE
numero NUMBER(2) :=3 ;
BEGIN
:var1 := numero+10 ;
end ;
print var1 ;

Exercice 3
Considérons ce schéma relationnel :

MEDECIN (numMed, nom_med, statut, salaire, numSpecialite#, numHopital#)


MALADE (numMal, nom_mal, prenom_mal, age_mal, adr_mal)
CONSULTATION (numMed#, numMal#, prescription, date, examen)
HOPITAL (numHopital, nom_hopital, region)
SPECIALITE (numSpecialite, nom_specialite, description, numHopital#)

1. Ecrire un programme PL/SQL qui insère le médecin nommé ‘Ali’, de statut ‘permanent’, à la
spécialité numéro 1 et l’hôpital numéro 2.

2. Ecrire un programme PL/SQL qui donne le nom et la région d’un hôpital dont le numéro est
saisi au clavier.

3. En PL/SQL, écrire un programme qui donne les noms de toutes les spécialités dans l’hôpital
numéro 1.

4. Donner le salaire maximal, minimal et celui moyen dans la table médecin.

5. Créer un bloc PL/SQL permettant de mettre à jour le nom d’une spécialité existante. Le
nouveau nom et le numéro de la spécialité sont entrés en paramètre.

6. Créer un bloc PL/SQL pour supprimer une consultation dont la date est saisie au clavier.