|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : octobre 2008 Messages : 14 ![]() |
Bonjour,
Je dois créer 2 champs d'audit (date d'insértion et date de modification) dans mes tables alimentées par Talend. J'ai créé un Trigger pour faire cela. Le trigger compile bien mais quand je l'active et que j'execute le job, j'ai les erreurs suivantes : ORA-04091: la table TableToto est en mutation ; le déclencheur ou la fonction ne peut la voir ORA-06512: à TRIGGER_TableToto, ligne 3 ORA-04088: erreur lors d'exécution du déclencheur TRIGGER_TableToto Si vous avez d'autres proposition pour le rajout de ces champs, je prends. Par avance Merci beaucoup de votre aide. Mouhsine |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : février 2010 Messages : 24 ![]() |
Bonjour,
Ce problème peut notamment se manifester si, dans le code de votre trigger, vous faites un SELECT qui lit la table de déclenchement (ici, TableToto). Ceci dit, sans avoir le détail du code, ce sera difficile d'en dire plus. Sinon accessoirement cette erreur concerne moins Talend qu'Oracle. Julien |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : octobre 2008 Messages : 14 ![]() |
Merci Julien de ta réponse,
Voici le code : Create or Replace TRIGGER TRIGGER_TableToto AFTER UPDATE OR INSERT on TableToto FOR EACH ROW begin IF UPDATING THEN INSERT INTO TableToto (TECHDATEMOD) VALUES (SYSDATE); ELSIF INSERTING THEN INSERT INTO TableToto (TECHDATECREA) VALUES (SYSDATE); END IF; END ; Est ce que tu as déja rajouté ce genre de champs ? Mouhsine |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : février 2010 Messages : 24 ![]() |
J'ai l'impression que tu ne comprends pas bien ce que tu écris.
La commande INSERT INTO TableToto (TECHDATEMOD) VALUES (SYSDATE) va te créer une ligne dont le champ TECHDATEMOD prendra la valeur SYSDATE, et tous les autres champs à null. Alors qu'à priori ce que tu devrais faire (si j'ai bien compris le besoin) c'est alimenter l'un ou l'autre des champs TECHDATECREA et TECHDATEMOD. Ces champs doivent donc déjà exister dans la structure de ta table. Mais dans ce cas un trigger n'a pas d'intérêt puisque tu peux faire tout cela dans Talend, ce qui sera probablement plus performant. Tu devrais relire la dernière réponse à ton autre sujet où la solution t'est donnée. |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : octobre 2008 Messages : 14 ![]() |
Merci de ta réponse.
Les 2 champs existent dans la table. Le besoin est simple : rajouter 2 champs dans la table :
Je suis entrain d'essayer de l'adapter à mon contexte. Si tu connais un autre moyen de mettre en place ces 2 champs, je prends. Merci. Mouhsine |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com