|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 8 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() |
As tu essayé d'appeler une séquence Oracle via les additionnalcolumns dans ton tOracleOutput?
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 100 ![]() |
Bonjour
As tu trouvé une solution à ta question stp ??? Si c'est le cas, peux tu la mettre stp ?? Merci d'avance |
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() Inscription : août 2005 Messages : 117 ![]() |
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 :
|
||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 100 ![]() |
Merci beaucoup d'avoir répondu
Peux tu détailler plus stp ??? j'ai pas bien compris |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : août 2005 Messages : 117 ![]() |
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; Code :
CREATE SEQUENCE nom_de_la_sequence START WITH (SELECT max( CHAMP_ID_CIBLE) FROM TABLE_CIBLE) INCREMENT BY 1; 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 |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : août 2005 Messages : 117 ![]() |
Après vérification, l'utilisation de la clause default avec une séquence semble ne pas fonctionner.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com