Compte Rendu BDA 8
Compte Rendu BDA 8
Compte Rendu BDA 8
Gr 7
Rédigé par :
M. KARROUMI Ilyass
Encadré par :
Mme. NASIRI Samia
1|Page
Introduction:
Dans ce TP nous allons mettre en œuvre les fonctions et procédures stockés pour bien
Avec le bloc de programme qui calcule la moyenne des salaires de la table EMPLOYEES
DECLARE
moye NUMBER(7,2);
Begin
SELECT AVG(salary) INTO moye FROM EMPLOYEES;
DBMS_OUTPUT.PUT_LINE ('à la date du ' || SYSDATE);
DBMS_OUTPUT.PUT_LINE ('La moyenne des salaires est : ' || moye);
DBMS_OUTPUT.PUT_LINE ('Préparer par ' || USER);
END;
1. Écrire et stocker ce code en tant que procédure.
2. Compiler la procedure
2|Page
II- Procédures stockées avec paramètres
1. Écrire une procédure « socket » qui prend en paramètre le department_id et renvoie
dans un paramètre la moyenne des salaires des employées de ce département
3|Page
III- Déclarer et appeler des procédures au sein de procédures
1. Étudier le code ci-dessous(ne le taper pas pour le moment)notez tout d’abord la
sortie que vous attendez du programme ?
Le programme va seulement être compilé.
2. Maintenant taper ce code, puis exécuter la procédure principale et voir si vous
obtenez la même chose que vous avez notée.
create or replace procedure proc_principale is
v_test number:=4;
procedure
proc_intern_1 is
begin
dbms_output.put_line(v_test||' la procedure interne 1’);
end proc_intern_1; procedure proc_intern_2 is
begin
dbms_output.put_line(v_test||' la procedure interne 2’);
end proc_intern_2;
begin
while v_test<=10 loop
proc_intern_1; if
mod(v_test,2)=0 then
proc_intern_2;
end if;
v_test:=v_test+1; end
loop; end
proc_principale;
4|Page
1.1 Faite des exemples d’exécutions pour s’assurer de la validité de votre fonction
Triggers (déclencheurs)
Exercice 1 :
La table articles (nom_Prod (varchar2), Quantite (number), Prix_u(number) , cout (number)) contient les
détails sur les produit, où cout est une colonne calculée, elle enregistre le cout de l’article, elle est
calculé par cout =prix_u * quantite
3- Faire un select* from articles, Que est ce que vous constatez pour le champ cout ?
5|Page
5- Test de Trigger ARTCILE_TRG1
5.1 - Maintenant insérer les lignes suivantes dans la table ARTICLES :
5.2 - faire un select * from ARTICLES, Que est ce que vous constatez pour le champ
cout ? Expliquer … ?
5.3 – en une seule instruction, Procéder à une mise à jour du prix de tous les articles
Lap_Top à 2500, Qu’est-ce que vous constatez pour le champ cout ? Expliquer … ?
6|Page
a- Désactiver le trigger et essayer d’insérer un nouveau enregistrement ou de MAJ la
table ARTICLES, Que est ce que vous constatez pour le champ cout ? Expliquer ?
Exercice 2 :
Numéro de l’erreur (tout numéro entre –20001 et –20999) et le message d’erreur qu’on désire afficher
à l’écran.
7|Page