|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Bonjour à tous,
Je suis débutant sous Talend, et je recontre un problème. Je vais essayer d'être assez clair. Voilà, j'ai un fichier CSV en entrée, et dans celui-ci, je voudrais effectuer une requête SQL ligne par ligne, pour pouvoir récupérer un ID qui est stocker en base. Ex: voici mon fichier CSV type : var1;var2;prix;effectif abs25;plu52;20,12;5000 dfr10;mlt34;18,53;2500 J'aimerais donc sur la 1ère ligne récupérer l'ID de "abs25", sur la 2ème l'ID de "dfr10", etc... Est-il possible de pouvoir faire cela? Merci pour votre aide. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
Oui c'est possible de faire cela, c'est même possible de le faire de plusieurs façons. L'une d'entre elle c'est d'utiliser un tFileInputDelimited qui va lire ton fichier puis à l'aide d'un tMap tu récupère la colonne qui t’intéresses c'est à dire l'id puis tu l'entoure du code de ta requête SQL (toujours dans les expressions du tMap). Après cette variable crée dans ton tMap tu la mets dans un tOracleRow ou bien un tOracleInput ( si ta base est Oracle sinon tu sais quoi faire
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui) Mes articles publiés |
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Citation:
Je me pose quand même une petite question. Je ne savais pas que l'on pouvais injecter du SQL dans le tMap!! Si j'ai bien compris, dans mon tMap, je dois ajouter une variable ; et dans l'expression, je peux effectuer ma requête pour récupérer l'ID correspondant? |
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
Bonjour,
En effet hier j'étais un peu pressé je n'ai pas pu détailler. En fait on suppose que ton tMap tu as l'entrée row1.ID qui contient l'id en question, alors tu pourrais faire une sortie du tMap sous la forme suivante par exemple : Code :
"select * from maTable where id = " + row1.ID.toString() Après tu fais un lien vers un tOracleInput avec cette fois ci dans la requête la sortie de ton tMap. J'éspère que j'ai été clair cette fois-ci.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui) Mes articles publiés |
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Finalement, je n'y arrive pas
En sortie, je n'ai aucune ligne! Voici ce que j'ai fait : Mon Job : ![]() Mon tMap : ![]() J'ai fait une erreur quelque part? |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
En fait d'après la miniature c'est ton tFileInput qui ne récupère rien. Vérifie que tu pointes sur le bon fichier et que le fichier contient bien des lignes. Et vérifie aussi que tu as mis les bons séparateurs de lignes de de colonnes.
De quelle format est ton fichier, et montre nous les propriétés de ton tFileInputDelimited.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui) Mes articles publiés |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Voilà à quoi ressemble mon tFileInputDelimited :
Mon CSV est bien rempli, il y a ça dedans : sas_var_prix;sas_var_eff;sas_var_poids;prix_moyen;effectif;poids MYRGB24432TADU=;EMRGB24432TADU=;TORGB24432TADU=;12,12;15;6000 MYRGB24433BFAE-;EMRGB24433BFAE-;TORGB24433BFAE-;10,5;10;5000 |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
Essai de faire ça au niveau de ton tFileInput, tu as apparemment un problème de séparateur de décimales et de milliers. (regarde la miniature)
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui) Mes articles publiés |
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Citation:
En revanche, dernier petit soucis. Au lieu de m'afficher le résultat de ma requête, il m'affiche la requête entière ; c'est-à-dire qu'au lieu d'avoir mon ID en sortie, j'ai la requête d'afficher : select ID from ma_table where code = 'mon_code'. Voilà à quoi ressemble mon fichier en sortie : SELECT COD_VAR FROM VARIABLE WHERE SAS_VAR = 'MYRGB24432TADU=';12.12;15;6000 SELECT COD_VAR FROM VARIABLE WHERE SAS_VAR = 'MYRGB24433BFAE-';10.50;10;5000 |
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
Citation:
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui) Mes articles publiés |
|
|
|
00
|
|
|
#12 | |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Citation:
|
|
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
là il s'agit d'un problème au niveau de ta base de donnée, essai de prendre la requête générée par Talend et de la tester directement sur la base sans passer par Talend pour voir ce qui cloche et après que tu seras sûr de ta requête et de son résultat tu retournes vers Talend pour l'intégrer dans ton Job, personnellement c'est comme ça que je procède mais à toi de voir. Bonne chance.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui) Mes articles publiés |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Ok, dans tous les cas merci de m'avoir aider et d'avoir pris de ton temps surtout.
Je testerais tout cela demain. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com