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 :

comment gérer les rejets de chargement comme avec SQL*Loader


Sujet :

Développement de jobs

  1. #1
    j6m
    j6m est déconnecté
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Points : 84
    Points
    84
    Par défaut comment gérer les rejets de chargement comme avec SQL*Loader
    Bonjour,
    Je vais peut-être en faire hurler certains... Je sais je raisonne "solution"... Je découvre Talend alors merci de votre compréhension.

    Voilà le cas : je charge dans une table SQL Server des enregistrements de personnes qui me viennent d'un fichier csv. Le champ numéro de téléphone y est déclaré sur 15 car.
    Or il y une ligne dans mon fichier de données où le tel fait plus (i.e. "0254****** - 3387". Il n'est donc pas chargé en base, mais Talend lui est content. Il considère que cet enregistrement a été chargé.
    Ma question est :
    comment puis-je mettre cet enregistrement "de côté" sur le même principe que les fichiers ".bad" de SQL*Loader?

    J'ai rajouté un filtre "Catch output reject" mais encore une fois il n'y a pas de rejets pour Talend ; j'ai juste un message "Data truncation" dont je suppose qu'il concerne cette ligne. Et rien ne va dans la sortie "catch output rejects".

    tFileInputDelimited --> row1 --> tMap --> tMsSqlOutput
    |
    Property Catch output reject = true

    le tMsSqlOutput dit "1888 rows" mais en fait il y en a 1887 dans la table ;
    le catch output rejects dit "0 rows".

    Je pourrais rajouter une table avec des champs plus grands, bref faire le ménage en base de données, mais a priori je ne suis pas payé pour enrichir le MCD.
    Auriez-vous une solution à me conseiller? Merci d'avance.
    quand la pierre tombe sur l’œuf, malheur à l’œuf
    quand l’œuf tombe sur la pierre, malheur à l’œuf

  2. #2
    j6m
    j6m est déconnecté
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Points : 84
    Points
    84
    Par défaut euh je crois que j'ai trouvé
    Finalement j'ai mis "StringHandling.LEFT(row1.TELEPHONE_GSM ,15)" et là je suis sûr que mon enr. ne sera pas rejeté.
    quand la pierre tombe sur l’œuf, malheur à l’œuf
    quand l’œuf tombe sur la pierre, malheur à l’œuf

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 24
    Points : 35
    Points
    35
    Par défaut
    Simplement en ajoutant une 2nde étape au traitement qui consisterait à aller lire le fichier .bad généré !

  4. #4
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2011
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2011
    Messages : 201
    Points : 352
    Points
    352
    Par défaut
    Bonjour,

    Ajoute un flux 'rejets' sur le tMSSqlOutput.
    (clic droit sur le tMSSqlOutput, ligne, rejets -en dessus du Main-).

    Si le 'Rejets' n'apparaît pas, va dans les 'Paramètres avancés' du tMSSqlOutput pour décocher 'Définir la taille des lots'
    cf.
    http://www.talendforge.org/forum/viewtopic.php?id=15045)

    Sur le flux 'rejets', tu trouveras ta ligne en erreur car trop longue. Tu pourras ainsi effectuer ton traitement en erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/04/2009, 15h06
  2. Réponses: 8
    Dernier message: 27/02/2009, 01h37
  3. Comment gérer les WideString avec du code ASM ?
    Par Zepeq dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2008, 11h57
  4. [DAO] Comment gérer les liens avec la bdd dans mes classes?
    Par Wormus dans le forum Autres
    Réponses: 6
    Dernier message: 22/02/2006, 16h14
  5. Réponses: 2
    Dernier message: 08/07/2005, 10h40

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