Vous êtes sur la page 1sur 4

Classe : 3A

TP 1 : Introduction PL/SQL
Exercice1
a.
b.
c.
d.

Parmi les dclarations et les blocs PL/SQL suivants, lesquels s'excutent avec succs ?
BEGIN
END; false
DECLARE
amount INTEGER(10);
END; false
DECLARE
BEGIN
END; false
DECLARE
amount INTEGER(10);
BEGIN
DBMS_OUTPUT.PUT_LINE(amount);
END; True

Exercice2
Crez et excutez un bloc anonyme simple qui affiche "Hello World". Excutez et enregistrez
ce script sous le nom lab1.sql.
DECLARE
var varchar(40):='Helo world';
BEGIN
DBMS_OUTPUT.PUT_LINE(var);
END;

Exercice3
Ecrivez un programme pl/sql placant la valeur 10 dans une variable a, puis affichant la
factorielle de a. Excutez et enregistrez ce script sous le nom lab2.sql.
DECLARE
a number :=10;
f number :=1;
BEGIN
for i IN 1..10 LOOP
f:=f*i;
END LOOP;
DBMS_OUTPUT.PUT_LINE(f );

END;

Exercice4
Parmi les dclarations de variables suivantes, dterminer celles qui sont incorrectes :
A-

DECLARE
v_id NUMBER(4); true
B- DECLARE
v_x,v_y,v_z VARCHAR2(10); false
C - DECLARE
v_date_naissance DATE NOT NULL; false
D - DECLARE
v_en_stock BOOLEAN := 1; false
E-

DECLARE
emp_record

emp_record_type; false

Exercice5
1.

Crer un bloc PL/SQL pour insrer un nouveau dpartement juridiquedans la table


DEPARTMENTS ". Excutez et enregistrez ce script sous le nom lab3.sql.
a) Utiliser la squence DEPT_ID_SEQ pour gnrer un numro de dpartement on
suppose que la squence existe dj dans notre base de donnes).(. Laisser le numro
de rgion(location_id) NULL.

DECLARE
BEGIN
insert into departments
(department_id,department_name,manager_id,location_id)values(seq.nextval(),1
47,'juridique');
end;
Crer la table commande contenant le num_cmd , num_client,employee_id,date_cmd
et total ajouter les contraintes ncessaires.la cl primaire est compose du num_cmd
et du num_client
Create table commande (
Num_cmd number,
Num_client number,
Employee_id number,

Date_cmd date,
Constraint pk_cmd primary key(num_cmd , num_client)
);

Crer un bloc PL/SQL permettant de mettre jour le pourcentage de commission de


lemploy num 100 en fonction du total de ses ventes. Excutez et enregistrez ce script
sous le nom lab3.sql:
Trouver la somme totale de toutes les commandes traites par cet employ
Mettre jour le pourcentage de commission de lemploy :
- si la somme est infrieure 100,000 passer la commission 10
- si la somme est comprise entre 100,000 et 1,000,000 inclus passer la commission
15
- si la somme excde 1,000,000 passer la commission 20
- si aucune commande nexiste pour cet employ, mettre la commission 0

Exercice6
Ecrire un bloc PL/SQL qui permet dafficher le nom et le revenu mensuel dun
employ donn (revenu mensuel=salaire(1+commission)). Utiliser le type record vu en
cours.

Exercice7
Testez la visibilit des variables suivantes, donnez le rsultat chaque niveau (ligne 916-18) :

Exercice8
Crer la table Etudiant (Noetud number, NomEtud Varchar(20), Note
number).

Ecrire un bloc PL/SQL permettant de remplir la table Etudiant de 30


enregistrements.
Noetud
1
2

30

NomEtud
Etudiant 1
Etudiant 2

Note
10
10

Etudiant 30

10