Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/09/2011, 13h15   #1
Membre du Club
 
Inscription : mai 2002
Messages : 611
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 611
Points : 48
Points : 48
Par défaut différence entre triggers de type statement et triggers de type row

Bonjour,

J'ai examiné le code de deux type de triggers: un de type statement et un de type ROW LEVEL.

Je ne parviens pas à voir en quoi ils sont si différents.
voici un exemple de trigger


Code :
1
2
3
4
5
6
7
8
9
CREATE OR REPLACE TRIGGER secure_emp
BEFORE UPDATE ON EMP
BEGIN
IF (to_char(sysdate, 'DY') IN ( 'SAT', 'SUN')) OR ( TO_CHAR(sysdate, 'HH24') NOT BETWEEN '8' AND '18')
 
THEN
RAISE_APPICATION_ERROR (-20504, 'you may only update EMP during office hours ');
END IF;
END secure_emp;
même si la clause FOR EACH ROW n'est pas spécifiée, on est obligé de considérer qu'un contrôle de chaque ligne de la table emp jour sera fait, pour vérifier que la condition émise dans le begin est bien respectée et si ce n'est pas le cas , un message d'erreur sera émis.

Je vous remercie beaucoup de bien vouloir m'expliquer la réelle différence ente des deux type de triggers.

Bien cordialement.

new_wave
__________________
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]
new_wave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 13h57   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 813
Points : 5 813
Citation:
Envoyé par new_wave Voir le message
...
m^me si la clause FOR EACH ROW n'est pas spécifié, on est obligé de considérer qu'un contrôle de chaque ligne de la table emp jour sera fait, pour vérifier que la condition emise dans le begin est bien respectée et si ce n'est pas le cas , un message d'erreur sera émis.
...
Qu’est-ce que vous fait penser qu’il faut un contrôle pour chaque ligne dans votre exemple ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 13h09   #3
Membre du Club
 
Inscription : mai 2002
Messages : 611
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 611
Points : 48
Points : 48
Par défaut différence ente triggers

Je considère que cette question est résolue.
Merci de votre aide.

Cordialement.

new_wave
__________________
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]
new_wave est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h18.


 
 
 
 
Partenaires

Hébergement Web