Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
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 28/06/2011, 10h39   #1
Invité régulier
 
Inscription : octobre 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 14
Points : 6
Points : 6
Par défaut Talend et Trigger Oracle

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
oualidifornie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h14   #2
Nouveau Membre du Club
 
Inscription : février 2010
Messages : 24
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2010
Messages : 24
Points : 34
Points : 34
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
kojuo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h19   #3
Invité régulier
 
Inscription : octobre 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 14
Points : 6
Points : 6
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
oualidifornie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h51   #4
Nouveau Membre du Club
 
Inscription : février 2010
Messages : 24
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2010
Messages : 24
Points : 34
Points : 34
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.
kojuo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 12h00   #5
Invité régulier
 
Inscription : octobre 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 14
Points : 6
Points : 6
Merci de ta réponse.
Les 2 champs existent dans la table.
Le besoin est simple : rajouter 2 champs dans la table :
  • champ 1 date d'insertion de l'enregistrement
  • champ 2 date de modification (si y a lieu)
Pour ce faire je pense au Trigger mais j'ai cette erreur de table mutante. La solution est .
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
oualidifornie 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 02h09.


 
 
 
 
Partenaires

Hébergement Web