IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Importer un fichier et charger que les colonnes où Length <>0


Sujet :

Développement de jobs

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 25
    Points
    25
    Par défaut Importer un fichier et charger que les colonnes où Length <>0
    Bonjour,

    Je cherche à importer le contenu d'un fichier csv dans une table
    mais uniquement les colonnes renseignées.
    Je ne veux pas créer ma table de sortie avec les colonnes vides du fichier.

    Comment faut-il si prendre avec Talend ?
    Quel composant faut-il utiliser ?

    Merci pour votre expertise
    CLLUCIOLE

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    Citation Envoyé par clluciole Voir le message
    Je cherche à importer le contenu d'un fichier csv
    utilise un tFileInputDelimeted

    Citation Envoyé par clluciole Voir le message
    dans une table
    un t#SGBD#Output

    Citation Envoyé par clluciole Voir le message
    dans une table
    mais uniquement les colonnes renseignées.
    Je ne veux pas créer ma table de sortie avec les colonnes vides du fichier.
    C'est un peu complexe il faut utiliser un tMap avec en entrée principale (main) ton tFileInputDelimeted en entré secondaire (lookup) un t#SGBD#Input avec les données existantes.
    En sortie je te conseil même d'avoir deux t#SGBD#Output, l'un pour les insertions et l'autre pour les mises a jours.
    Dans le cas de mise a jour tu devras tester si ta valeur est vide dans ton fichier est vide, je prend ma valeur actuelle en base sinon je prend celle du fichier.


    Vu le nombre de composant faisant appel a ta base de donnés, utilise aussi t#SGBD#Connection et des t#SGBD#Commit


    Voici un exemple que j'avais fait pour illustrer un insert ou update si ça peut t'aider.
    Cette exemple montre une mise à jour de stock
    Attention pour utiliser cette méthode il faut que tes clé primaires soit défini comme nullable
    Nom : tMapInsertOrUpdate1.png
Affichages : 273
Taille : 21,3 KoNom : tMapInsertOrUpdate2.png
Affichages : 307
Taille : 32,8 Ko

    Si tu souhaites relier cet exemple à ton problème
    tu remplaces le tFixedFlowInput par ton tFileInputDelimeted
    Supposons que j'aurai du tester comme toi sur le champs Designation soit vide,
    j'aurai fait en création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    row1.Designation == null || row1.Designation.trim().equals("") ? null : row1.Designation
    et en mise à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    row1.Designation == null || row1.Designation.trim().equals("") ? row2.display_name: row1.Designation

    A+
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    Merci pour ta réponse, mais mon besoin me paraît bien plus simple (enfin je crois!)
    J'ai un fichier csv en source, dans lequel j'ai des colonnes vides.
    Lorsque j'exécute le job Fichier délimité -> tMap -> t_Output, j'ai une erreur car j'ai des champs de longueur 0.

    Donc je voudrais ne pas récupérer les colonnes de longueur 0.

    Aurais-tu une idée comment traiter ce cas ?

    Merci

  4. #4
    Membre chevronné
    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 018
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 018
    Points : 1 776
    Points
    1 776
    Par défaut
    Salut tout le monde,

    A moins que je me trompe, ton cas d'exemple supergeoffrey est légèrement différent du besoin de clluciole.
    Lorsque tu n'as de données dans ton fichier, tu viens piocher ta données Designation dans ta table product.
    Je pense que clluciole ne souhaite pas du tout insérer de donnée.

    Encore une fois, c'est comme cela que j'ai compris.
    clluciole, si tu ne veux pas les lignes ayant des champs avec une longueur à 0, dans ce cas, tu filtres à l'aide de la fonction

    table.champs.length()>0

    EDIT : je n'avais pas vu, tu l'avais écrit dans le titre de ton post.
    Tu peux faire dans ce cas dans ton tMap comme a fait Geoffrey:
    table.chp1.length()>0 && table.chp2.length()>0 && table.chp3.length()>0 && table.chp4..length()>0

Discussions similaires

  1. Importer un fichier CSV en choisissant les colonnes
    Par wam111 dans le forum Administration
    Réponses: 5
    Dernier message: 25/04/2018, 15h16
  2. importer un fichier CSS dans toutes les pages d'un site
    Par slim_java dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 13/11/2010, 17h18
  3. [E-02] Générer un fichier txt en formatant les colonnes
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/11/2008, 11h23
  4. Réponses: 6
    Dernier message: 17/06/2008, 14h49
  5. lire un fichier texte et separer les colonnes
    Par turk93390 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 29/12/2006, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo