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 12/11/2007, 13h17   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 5
Points : 1
Points : 1
Par défaut création de trigger sous oracle 9i

Bonjour;

j'espère bien avoir une reponse;
j'ai créé un trigger pour supprimer des caractères dans des champs précis aprés insertion de chaque enregistrement j'ai utilisé le Update mais il l'applique sur toute la table et moi je veux juste l'enregistrement inséré.
voila mon trigger:

Code :
1
2
3
4
5
6
7
8
CREATE OR REPLACE TRIGGER "SCOTT"."SUPPRIMER" AFTER
INSERT ON "datacsv" 
Begin
 
UPDATE SCOTT.datacsv SET champ1 = substr( champ1,2);
 
UPDATE SCOTT.datacsv SET champ4 = substr(champ4,1,length(champ4)-1);
end;
merci d'avance
bkina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 13h30   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
manque les clauses WHERE

Tu peux aussi ne faire qu'un seul UPDATE :

Code :
1
2
UPDATE SCOTT.datacsv SET champ1 = substr( champ1,2),champ4 = substr(champ4,1,length(champ4)-1)
WHERE ...
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 13h58   #3
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 215
Points : 4 215
C'est un trigger de base ! Qu'est ce que ce post fait dans la partie form ?

Faut faire le trigger en BEFORE INSERT FOR EACH ROW
et utiliser les new
Code :
1
2
:new.champ1 := substr( :new.champ1,2);
:new.champ4 = substr(:new.champ4,1,length(:new.champ4)-1);

PS : Le nom du trigger est vraiment pas parlant... met au moins une partie du nom de la table, sinon tu ne t'y retrouvera jamais.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h01.


 
 
 
 
Partenaires

Hébergement Web