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 :

Vérifier si une colonne est vide avant parseDate


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Vérifier si une colonne est vide avant parseDate
    Salut à tous !

    Je commence à vraiment perdre courage là.. Je cherche à faire un simple filtre sur un flux d'entrée dans un tMaP mais celui-ci ne fonctionne pas

    Dans mon flux d'entrée, je récupère plusieurs colonnes dont une qui est censée contenir une date. Je dis bien censée car une erreur peut toujours arriver ! Alors pour prévoir ce problème, je pose un filtre sur mon flux d'entrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !("".equals(row3.DATE_PRIX) && Relational.ISNULL(row3.DATE_PRIX) && row3.DATE_PRIX.isEmpty())

    Le problème est que justement, dans mon fichier, une date est manquante. Et lors du traitement, Talend me renvoie une erreur :

    java.lang.RuntimeException: java.text.ParseException: Unparseable date: ""

    Pourtant je filtre bien les chaines de caractères vides via mon < !("".equals(row3.DATE_PRIX)) > non ?

    Help please, je désespère !

  2. #2
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    !("".equals(row3.DATE_PRIX) && Relational.ISNULL(row3.DATE_PRIX) && row3.DATE_PRIX.isEmpty())

    Bonjour voici ce que je te propose pour tester si la date est existe ou pas
    row1.date_prix!=null ? row1.date_prix(ok):sinon !!! car dans la bdd le " " est vu en null voila

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Relational.ISNULL(row3.DATE_PRIX) ne fait pas déjà cette vérification ?

    Aujourd'hui je n'aurai pas le temps de vérifier je pense, mais je te tiens au courant dès que possible. Merci !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    pekre,

    j'ai testé ta solution, cela ne fonctionne pas. En fait dans ma colonne je n'ai pas de valeur, même pas un espace (ce qui donne "").

    Au final, je fais les tests suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    "".equals(row3.DATE_PRIX)
    Relational.ISNULL(row3.DATE_PRIX)
    row3.DATE_PRIX.isEmpty()
    row3.DATE_PRIX!=null
    Aucune de ces vérifications n'arrivent à récupérer mon exception..


    Je tiens à préciser (on ne sait jamais), que cette exception arrive à la dernière ligne de mon fichier. Cette dernière ligne ne contient pas de données, juste un "FIN" dans la première colonne. Je sais que je peux utiliser "Pied de page = 1" dans mon tFileInput pour éliminer cette erreur mais si un jour, ce fichier d'entrée vient à changer et qu'il n'y ai plus cette ligne de fin, ça me supprimera une ligne de données. Et il est hors de question de revenir sur du dev déjà fait (on a pas fini si le fichier change toutes les semaines..).

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Personne n'aurait une idée ?

  6. #6
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2011
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juillet 2011
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    Bonjour

    tu as vérifié s'il n'y a pas un caractère vide dans la zone
    on sait jamais fait un TRIM dans ta zone.

  7. #7
    Membre habitué

    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2011
    Messages : 115
    Points : 188
    Points
    188
    Par défaut
    Bonjour.
    ton problème se situe dans la condition ( déjà si l'erreur persiste, c'est que la condition a été vérifié ). une valeur vide n'est jamais égale a null (dans ta condition il y a le == null ) , d’où cette condition qui serait toujours vérifiée (false) ( valeur vide ou valeur non vide). Je te montre ci dessous une petite simulation de cela, en Java bien sur (Talend c'est du Java derrière) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     	public static void main(String[] args) {
     
    		String test = "";
     
    		//Condition fausse
    		if(("".equals(test) && test == null && test.isEmpty()) == false) { //équivalent a !("".equals(test) && test == null && test.isEmpty()) 
    			System.out.println("Display  One : " + test);
    		}
     
    		//Simple condition
    		 if(test != null && !test.isEmpty()) {
    			System.out.println("Display  Two : " + test);
    		 }
    	}
    Innovation = Blending of idea , science and practice engineering

Discussions similaires

  1. Vérifier si une valeur est présente avant de copier
    Par maximilien59 dans le forum VBA Access
    Réponses: 12
    Dernier message: 20/06/2013, 19h45
  2. Réponses: 4
    Dernier message: 01/02/2011, 09h02
  3. Vérifier qu'une table est vide dans le datastore
    Par argonath dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 20/03/2010, 18h47
  4. Vérifier si une colonne est une clé primaire dans une table
    Par mazquindz dans le forum Développement
    Réponses: 1
    Dernier message: 15/06/2009, 13h38
  5. vérifier si une table est vide avant insertion
    Par cashmoney dans le forum JDBC
    Réponses: 7
    Dernier message: 21/04/2009, 17h54

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