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 [Link].
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 [Link].
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 [Link].
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([Link](),1
47,'juridique');
end;
Crer la table commande contenant le num_cmd , num_client,employee_id,date_cmd
et total ajouter les contraintes [Link] 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 [Link]:
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