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 27/11/2007, 11h07   #1
Invité de passage
 
Inscription : février 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 8
Points : 0
Points : 0
Par défaut Génération automatique de valeur pour un champ clé de substitution

Bonjour,
je suis entrain de migrer des données d'une table Access (supposons avec deux champs : code et libelle) vers une table Oracle (b de champs elle aussi code et libelle) mais je voudrai rajouter un nouveau champ clé de substitution dans la table oracle b comme dans les datawarehouse. donnc j'aurai pour b (cle,code,libelle).
Je voulais savoir comment générer automatiquement les valeur du champ clé avec Talend (au niveau du tMap, j'ai eu à faire quelques transformations au niveau des autres champs).

j'ai un job : tAccessInput-->tMap-->tOracleOutput.

Merci d'avance de m'aider.
gaoussou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 04h17   #2
co2
Membre émérite
 
Avatar de co2
 
Inscription : mai 2002
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 182
Points : 823
Points : 823
Envoyer un message via Skype™ à co2
As tu essayé d'appeler une séquence Oracle via les additionnalcolumns dans ton tOracleOutput?
co2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 17h53   #3
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut Génération automatique de valeur pour un champ clé de substitution

Bonjour

As tu trouvé une solution à ta question stp ???

Si c'est le cas, peux tu la mettre stp ??

Merci d'avance
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 12h07   #4
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
En l'occurrence, pour reprendre la réponse de co2, tu peux aussi définir une séquence Oracle et l'affecter à ta colonne par défaut. Auquel cas, tu peux omettre ton ID dans ton insert.

Code :
1
2
3
4
5
CREATE matable
(
    MonId integer DEFAULT masequence.NEXTVAL,
   ...
);
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 12h16   #5
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Merci beaucoup d'avoir répondu
Peux tu détailler plus stp ??? j'ai pas bien compris
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 14h18   #6
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
Et bien, en premier lieu il te faut définir une séquence dans ta base Oracle.

(Si tu n'as pas de lignes dans ta table)
Code :
CREATE SEQUENCE nom_de_la_sequence START WITH 1 INCREMENT BY 1;
(Si tu as déjà des lignes dans ta table)
Code :
CREATE SEQUENCE nom_de_la_sequence START WITH (SELECT max( CHAMP_ID_CIBLE) FROM TABLE_CIBLE) INCREMENT BY 1;
Une fois ta séquence déclarée dans ta base Oracle :
Soit tu insères explicitement la prochaine valeur de la séquence via le "additionnal column" de ton tOracleOutput en lui spécifiant la valeur nom_de_la_sequence.nextval

Soit dans ta table où ton id est déclaré, tu lui donne une valeur DEFAULT correspondant à la valeur suivante de la séquence.

Code :
ALTER TABLE_CIBLE MODIFY CHAMP_ID_CIBLE integer DEFAULT nom_de_la_sequence.NEXTVAL
Dans ce cas, il te suffit, dans ton tOracleOutput d'omettre le champ ID dans le flux que tu lui envois. Par défaut, la valeur de l'ID correspondra donc à l'incrément de la séquence (valeur default de ta colonne).
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 18h20   #7
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
Après vérification, l'utilisation de la clause default avec une séquence semble ne pas fonctionner.
tetsu no tama 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 05h22.


 
 
 
 
Partenaires

Hébergement Web