0% ont trouvé ce document utile (0 vote)
12 vues35 pages

Sous-programmes et déclencheurs PL/SQL

Ce document décrit les sous-programmes stockés dans Oracle tels que les procédures stockées, les fonctions, les packages et les déclencheurs. Il explique leur syntaxe et leur utilisation.

Transféré par

wala mz
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)
12 vues35 pages

Sous-programmes et déclencheurs PL/SQL

Ce document décrit les sous-programmes stockés dans Oracle tels que les procédures stockées, les fonctions, les packages et les déclencheurs. Il explique leur syntaxe et leur utilisation.

Transféré par

wala mz
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

Cours 5 : Les sous programmes stockés

 Sont des blocs PL/SQL qui possèdent un nom


 Consistent à ranger le block PL/SQL compilé
dans la base de données (CREATE)
 Peuvent être réutilisés sans être recompilés
(EXECUTE)
 Peuvent être appelés de n'importe bloc
PL/SQL
 Peuvent être regroupés dans un package.
 Syntaxe
 La procédure stockée est appelée par les
applications soit :
◦ En utilisant son nom dans un bloc PL/SQL (autre
procédure)

◦ Sous SQL*PLUS :
 Syntaxe
 Comme tout objet manipulé par Oracle, les
procédures et les fonctions peuvent être
supprimées si nécessaire
 Cette suppression est assurée par la
commande suivante :
Cours 7 : Les packages
 Un objet PL/SQL qui stocke d'autres types
d'objet : procédures, fonctions, curseurs,
variables, ...
 Consiste en deux parties :
◦ Spécification (déclaration)
◦ Corps (implémentation)
 Ne peut pas être appelé, ni paramétré ni
imbriqué
 Permet à Oracle de lire plusieurs objets à la
fois en mémoire.
 Syntaxe
Cours 8 : Les déclencheurs
 Action ou un ensemble d’actions déclenchées
automatiquement lorsqu’une condition se trouve
satisfaite après l’apparition d’un évènement.

 Un déclencheur suit la règle ECA :


 E: Evènement : mise à jour, suppression, insertion
 C : Condition : expression logique vraie ou fausse.
 A : Action : procédure exécutée lorsque la condition
est vérifiée.
 Maintien des contraintes d’intégrité.
 Propagation des mises à jour dans une bases de
données distribuées.
 Sécurité.
CREATE [OR REPLACE] TRIGGER nom_Trigger
{BEFORE|AFTER|INSTEAD OF} //évènement
{INSERT |DELETE|UPDATE [OF liste de données]
ON table
[FOR EACH ROW]
[WHEN (condition de déclenchement)]//condition
DECLARE
--Déclarations variables, curseurs…
BEGIN
--Traitement
EXCEPTION
--Gestionnaire d’exceptions
END [nom_Trigger];
 Ecrire un déclencheur qui affiche un message lorsque des n-
uplets sont supprimés de la table CHERCHEUR.

CREATE OR REPLACE TRIGGER TRG_DEL_CHERCH


AFTER DELETE
ON CHERCHEUR
BEGIN
Dbms_output.put_line (‘TRG_DEL_CHERCH déclenché’);
END TRG_DEL_CHERCH;
 Ecrire un déclencheur qui supprime toutes les commandes
d’un client avant sa suppression.

CREATE TRIGGER suppclient


BEFORE DELETE ON Client
FOR EACH ROW
BEGIN
DELETE FROM COMMANDE WHERE Codcli = :[Link];
END suppclient;
 Dans les triggers de tuples ( FOR EACH ROW), on peut
manipuler les valeurs traitées, directement en mémoire :
 :[Link] : ancienne valeur (DELETE | Update)
 :[Link] : nouvelle valeur (INSERT| UPDATE).
 Exemple : Trigger pour la suppression et sauvegarde dans
une table de journal.

CREATE OR REPLACE TRIGGER suppression_ligne


BEFORE DELETE ON produit
FOR EACH ROW
BEGIN
INSERT INTO journal VALUES (:[Link], :[Link],
:[Link]);
END suppression_ligne;
-- END: aussi juste.
 Lorsqu’un trigger est lancé sur un serveur et qui se termine
sans traitement d’exception, l’évènement qui l’a déclenché se
poursuit correctement.
 Deux types de triggers peuvent être définis :
 Trigger d’énoncé : lancé une seule fois.
 Trigger de tuples : exécuté autant de fois qu’il y a des tuples à
insérer, à modifier ou à supprimer.
 Par défaut, un trigger est actif, il peut être désactivé.

ALTER TRIGGER nom_trigger DISABLE;


ALTER TRIGGER nom_trigger ENABLE;

Vous aimerez peut-être aussi