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 20/07/2011, 14h18   #1
Membre actif
 
Inscription : février 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 167
Points : 161
Points : 161
Par défaut Vider un clob dans un fichier

Bonjour,

Je commence à regarder Talend. Après avoir bouquiné le tutoriel je tente une manip' qui me pose plusieurs soucis que je vais découper en plusieurs posts.

Je dois récupérer un LOB dans une table qui contient un fichier.
Ce fichier je dois le sauvegarder sur disque dans un répertoire.
La lecture de la table ne pose pas de soucis.
1 Quel composant utiliser pour vider le LOB dans un fichier ?
Ca peut être un .doc ou un .pgn par exemple.

2 Je dois nommer ce fichier avec un nom lu dans un autre champ de la table.
Comment puis-je faire ?

Siouplé ?

Pozzo.Débutant
Pozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h57   #2
Membre régulier
 
Etienne Menuet
Inscription : mai 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Etienne Menuet
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2010
Messages : 71
Points : 98
Points : 98
Bonjour,

1) Pour lire un LOB, tu utilises le type "Byte[]", tu mapperas cette unique colonne dans le fichier cible

2) Pour utiliser le nom du fichier contenu dans une table, tu peux enchainer ces composants :
tDBInput -main-> tFlowToIterate -Iterate-> tFixedFlowInput -main->tFileOuput
Dans le tFixedFlowInput tu recoupes la variable global du tFlowToIterate corespondant au LOB
emenuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 21h46   #3
Membre actif
 
Inscription : février 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 167
Points : 161
Points : 161
Par défaut Composant tFileOutput ?

Merci emenuet de ta réponse super rapide !

En utilisant le type "Byte[]" j'arrive bien à lire la colonne qui contient le fichier.
Pour info ça vient de mysql et j'arrive à lire et à insérer dans Oracle dans une table avec un champ blob. Le contenu est correctement transféré.

Je passe donc à l'itération.
tDBInput : Pas de soucis dans l'utilisation.

tFlowToIterate : Pas de soucis dans l'écriture.
J'ai défini deux variables Nomfichier et ContenuFifichier qui mappent les deux champs de la table qui m'intéresse.

Dans tFixedFlowInput c'est un peu plus flou.
J'ai édité le schéma et créé deux colonnes que Avec les noms Nomfichier et ContenuFichier.
Dans le value j'ai récupéré les deux variables avec ctrl espace.
J'espère que c'est bon.

MAIS Il n'y a pas de composant tFileOutput.
Il y a du excel, du arff, du ebcdic, du json... 12 comme ça il y en a.
Mais du output il n'y en a pas.

La version de Talend est 4.2.2 (build r63143-20110622-0628)
J'ai un peu cherché sur le web. Pas de trace d'une suppression de ce composant.

Une idée ?

Pozzo.Hu ?
Pozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 20h55   #4
Membre actif
 
Inscription : février 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 167
Points : 161
Points : 161
Bon.

Pour le coté tFileOutput j'ai utilisé tFileOutputDelimited après un échange sur le forum talend de la communauté d'édition. http://www.talendforge.org/forum/vie...d=61382#p61382
Pas tous compris mais ça marche.

En revanche je me suis fait jeter pour les variables Nomfichier et ContenuFichier.
J'ai utilisé les variables "build-in" qui ont le nom des colonnes que j'ai lues.

Mais ça marche.
Merci

Pozzo
Pozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h43.


 
 
 
 
Partenaires

Hébergement Web