0% ont trouvé ce document utile (0 vote)
14 vues21 pages

Introduction au PL/SQL : Procédures et Triggers

Transféré par

psplusa658
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues21 pages

Introduction au PL/SQL : Procédures et Triggers

Transféré par

psplusa658
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 3: Procédures, fonctions et Triggers

Paris ***** Du 6 au 7 septembre 2010

Introduction au Langage PL/SQL

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Qu'est-ce qu’une procédure?

Une procédure stockée (PS) est un ensemble nommé


d’instructions PL/SQL, précompilé et stocké sur le
Paris ***** Du 6 au 7 septembre 2010

serveur. Les PS constituent une méthode privilégiée pour


encapsuler les tâches répétitives afin de les exécuter
efficacement.

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Quelques avantages des PS?

Performance: chaque fois qu’une requête SQL est


exécutée, le serveur construit un plan d’exécution avant
Paris ***** Du 6 au 7 septembre 2010

d’exécuter la requête. Les PS sont plus performantes car la


première fois que la PS est exécutée, le serveur crée le
plan d’exécution, ensuite les exécutions ultérieures de
cette PS seront beaucoup plus rapides parce que le
serveur ne recrée pas un nouveau plan.

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Quelques avantages des PS?

Réutilisabilité: Une fois que la PS est créée on peut


l’appeler à n’importe quel moment. Ceci permet une
Paris ***** Du 6 au 7 septembre 2010

modularité et encourage la réutilisation du code.

Accès Réseau: Les PS contribuent à la réduction du


trafic sur le réseau. Au lieu d’envoyer des centaines
d’instructions SQL sur le réseau les utilisateurs peuvent
effectuer une opération complexe à l’aide d’une seule
instruction réduisant ainsi le nombre de demandes
échangées entre le client et le serveur.

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Syntaxe de création d’une PS sans paramètres

Create or replace procedure nom_proc


is
les variables locales sont à
Paris ***** Du 6 au 7 septembre 2010

BEGIN
-- code de la procédure
déclarer entre IS et BEGIN
END;

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Syntaxe de création d’une PS avec paramètres

Create or replace procedure nom_proc (PARAM1 mode type1,……)


is
mode définit le type du paramètre:
Paris ***** Du 6 au 7 septembre 2010

BEGIN
- IN : paramètre d’entrée
-- code de la procédure - OUT : paramètre de sortie
END; - IN OUT : paramètre d’entrée / sortie

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Exemple d’une PS avec paramètres


Paris ***** Du 6 au 7 septembre 2010

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Qu'est-ce qu’une fonction?

Une fonction est semblable à une procédure stockée à la


différence qu’elle renvoie toujours une valeur.
Paris ***** Du 6 au 7 septembre 2010

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Syntaxe de création d’une fonction sans paramètres

Create or replace FUNCTION nom_fonction


return type_retourné
Paris ***** Du 6 au 7 septembre 2010

is
BEGIN
-- code de la fonction
return (var_resultat);
END;

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Syntaxe de création d’une fonction avec paramètres

Create or replace FUNCTION nom_fonction (PARAM1 mode type1,……)


return type_retourné
Paris ***** Du 6 au 7 septembre 2010

is
BEGIN
-- code de la fonction
return (var_resultat);
END;

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Exemple d’une fonction avec paramètres


Paris ***** Du 6 au 7 septembre 2010

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Qu'est-ce qu’un déclencheur (ou Trigger)?

❑ Un déclencheur est une procédure stockée qui


s’exécute, en arrière plan, en cas de mise à jour (insert,
Paris ***** Du 6 au 7 septembre 2010

update ou delete) des données qu’il protège;


❑ Ces procédures se déclenchent automatiquement après
que l’événement concerné a été soulevé;

❑ Un trigger est toujours rattaché à une table ou à une vue.

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Syntaxe de création d’un déclencheur

CREATE [OR REPLACE] TRIGGER <nom_trigger>


{BEFORE | AFTER } |INSTEAD OF
Paris ***** Du 6 au 7 septembre 2010

{INSERT| DELETE | UPDATE [OF colonnes]} Evénement

ON <nom_table|nom_vue>
[FOR EACH ROW] Pour chaque ligne

[WHEN <condition>] Condition

<blocPLSQL> Action

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Syntaxe de création d’un déclencheur

Option Signification
Paris ***** Du 6 au 7 septembre 2010

BEFORE |AFTER Déclenche le trigger avant ou après la


modification des données

INSTEAD OF Le corps du déclencheur est exécuté à la


place de l’ordre PL/SQL envoyé sur la table
ou la vue.

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Spécification d’une action en fonction de l’événement

Usage de WHEN:
case
❑ WHEN INSERTING then --Action1
Paris ***** Du 6 au 7 septembre 2010

❑ WHEN DELETING then --Action2


❑ WHEN UPDATING then –Action3
END Case

Usage de IF
❑ IF INSERTING THEN ….. END IF;
❑ IF DELETING THEN ….. END IF;
❑ IF UPDATING THEN ….. END IF;

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Les types de triggers

Il existe deux types de triggers différents :


❑ Les triggers de table: sont exécutés une seule fois lorsque des
Paris ***** Du 6 au 7 septembre 2010

modifications surviennent sur une table. Ils sont utiles si des


opérations de groupe doivent être réalisées (comme le calcul
d’une moyenne, d’une somme totale, d’un compteur, …).
❑ les triggers de ligne (ROW) : sont exécutés « séparément »
pour chaque ligne concernée par l'instruction insert, update ou
delete. [FOR EACH ROW]

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Accès aux anciennes et nouvelles valeurs (triggers de ligne )

Les anciennes et nouvelles valeurs de la ligne courante sont


référencées par :OLD.colonne et :NEW.colonne.
Paris ***** Du 6 au 7 septembre 2010

Ancienne valeur Nouvelle valeur


:OLD.colonne :NEW.colonne
INSERT NULL Nouvelle valeur

DELETE Ancienne valeur NULL

UPDATE Ancienne valeur Nouvelle valeur

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Exemple : Accès aux valeurs des colonnes en Trigger


Table Article

Code_art Libellé Prix_Uni Qte_stock


1 Pc Portable 6000 10
Paris ***** Du 6 au 7 septembre 2010

2 Tv Samsung 3000 5 :NEW

Insert into Article


(1) Values (2,’Tv Samsung’,3000,5);
Update Article :NEW.qte_stock=15
(2) Set Qte_stock=15 Where code_art=2; 2 Tv Samsung 3000 15
:OLD.qte_stock=5
Delete from Article
(3) 2 Tv Samsung 3000 15
Where code_art=2;
:OLD
Pr: M.GHAILANI Langage de programmation PL/SQL
Chapitre 3: Procédures, fonctions et Triggers

Exemple 1 d’un trigger de ligne


Paris ***** Du 6 au 7 septembre 2010

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Exemple 2 d’un trigger de ligne


Paris ***** Du 6 au 7 septembre 2010

❑ Dans le bloc PL/SQL, on peut faire référence aux colonnes par les
préfixes :NEW et :OLD

❑ Dans la clause WHEN, les colonnes sont accessibles via NEW ou OLD

Pr: M.GHAILANI Langage de programmation PL/SQL


Chapitre 3: Procédures, fonctions et Triggers

Désactivation et Réactivation d'un TRIGGER

Désactivation d'un TRIGGER ➔ ALTER TRIGGER <nom_trigger> DISABLE;

Réactivation d'un TRIGGER ➔ ALTER TRIGGER <nom_trigger> ENABLE;


Paris ***** Du 6 au 7 septembre 2010

Désactivation de tous les triggers d'une table

ALTER TABLE <nom_table> DISABLE ALL TRIGGERS;

Réactivation de tous les triggers d'une table

ALTER TABLE <nom_table> ENABLE ALL TRIGGERS;

Pr: M.GHAILANI Langage de programmation PL/SQL

Vous aimerez peut-être aussi