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

Talend Discussion :

Condition correcte sur Talend et insertion impossible sur Postgers


Sujet :

Talend

  1. #1
    Membre du Club
    Homme Profil pro
    12
    Inscrit en
    Mai 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : 12
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 67
    Points : 61
    Points
    61
    Par défaut Condition correcte sur Talend et insertion impossible sur Postgers
    Bonsoir à tous,

    Quelqu'un d'entre vous aurait l'amabilité de me dépanner sur un coup à si courte échéance ?
    En effet, je travail sur un mini-projet sur Talend, et je trouve du mal à trouver une solution à la problématique suivante :

    J'ai une table véhicule dans ma base de donné Postgres; cette dernière comporte un champ qui - à la base - peut avoir une de ces 4 valeurs { A, G, M, K}
    Toutefois, le fichier source contient des erreurs de saisie de ce fait, j'ai des enregistrements qui ont comme valeur du champ 'C' et 'S' ou carrément NULL
    l'objectif étant de corriger cette erreur j'ai mis comme condition de remplissage de table, la condition suivante, de telle façon à changer chaque valeur nulle, ou un S ou C en P:


    Nom : imgserver.jpg
Affichages : 205
Taille : 16,3 Ko

    le test me donne un bon résultat, néanmoins ma table sur Postgres, contient toujours des enregistrements avec 'S' et 'C' !

    si vous pouviez me donner une solution, ce serait véritablement gentil de votre part

  2. #2
    Membre du Club
    Homme Profil pro
    12
    Inscrit en
    Mai 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : 12
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 67
    Points : 61
    Points
    61
    Par défaut
    le code avec une qualité meilleur :
    Nom : Capture.PNG
Affichages : 226
Taille : 160,9 Ko

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur ETL & BI
    Inscrit en
    Janvier 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur ETL & BI
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 37
    Points : 51
    Points
    51
    Par défaut
    Salut,
    Essaie plutôt ceci pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Relationnal.ISNULL(row1.gps) || row1.gps.equals("C") || row1.gps.equals("S")) ? "P":row1.gps
    Voir grand, Mais démarrer petit ...

  4. #4
    Membre du Club
    Homme Profil pro
    12
    Inscrit en
    Mai 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : 12
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 67
    Points : 61
    Points
    61
    Par défaut
    cela ne marche toujours pas! hélas . .
    En fait, le test de Talend affiche de bon résultat, c'est à dire si,par exemple, j'attribue à row1.gps='C' le testeur le remplace en P.
    Mais dans ma base de données ma table véhicule conserve toujours des enregistrements avec des attributs 'C'et 'S' par contre pour le champ NULL le code le traite correctement.
    vous voudriez bien voir l'image ci-après:


    Nom : 569412ABC.jpg
Affichages : 184
Taille : 19,8 Ko

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur ETL & BI
    Inscrit en
    Janvier 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur ETL & BI
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 37
    Points : 51
    Points
    51
    Par défaut
    Dans ce cas le problème doit venir soit de ton tInputPostgre soit de ta base elle-même :
    - De quelle manière insères-tu les élément dans la table ? update, insert, insert or update, etc.
    - Quelle(s) action(s) sur ta table ? rien, vider avant, etc.
    - Y'a-t-il des enregistrements qui traînent dans ta table ?

    Par exemple, si tu as des éléments qui traînent et que tu insères les enregistrements, tu auras toujours des valeurs erronées qui seront présentes.
    Voir grand, Mais démarrer petit ...

  6. #6
    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
    Tu compare des Chaîne de caractère à un caractère.

    J'ai fait le test suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.out.println("C".equals('C')); //false

    essaye ça du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Relationnal.ISNULL(row1.gps) || row1.gps.equals('C') || row1.gps.equals('S')) ? Character.valueOf('P') : row1.gps
    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

Discussions similaires

  1. [C#]faire 1 Insert Into sur Access
    Par mcay dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/02/2010, 11h47
  2. Réponses: 10
    Dernier message: 21/11/2005, 23h05
  3. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  4. insert-select sur 2 base différente
    Par gskoala dans le forum Paradox
    Réponses: 2
    Dernier message: 16/11/2004, 15h11
  5. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45

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