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 :

Gestion erreur (Dates) :"" incompatibilité de type ou caractère non valide pour la page de codes spécifiée"


Sujet :

Développement de jobs

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut Gestion erreur (Dates) :"" incompatibilité de type ou caractère non valide pour la page de codes spécifiée"
    Bonjour,

    j'ai en entrée une date en string (yyyyMMddHHmmss) que je sors en DATE , donc je parse (TalendDate.parseDate) . j'ai fait un filtre sur length(date_string)=14 car vu que mes données ont des erreurs , je récupère que les 14 premiers chiffres.
    J'ai aussi vérifier que c'est bien une date TalendDateisDate,là vous aller me dire si tu parse en Date pourquoi je vérifie ? vu que je cherche une solution j'essai tout.
    De plus j'ai mis ce composant (SchemaComplianceChek) pour que chaque ligne soi vérifier avant la sortie.

    Le souci et que quand j'exécute le job j'ai ce message qui apparaît: " incompatibilité de type ou caractère non valide pour la page de codes spécifiée".

    Le message complet est même : "java.sql.SQLException: Erreur de conversion des données de chargement en masse (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 15908808, colonne 6 (DATE_HEURE)" .

    Sauf que j'ai des millions de ligne et comme dans l'erreurs je peux pas chercher ligne par ligne , dans mon cas ce serait à la 15908808 .

    Parmis les solutions essayer il y à l'utilisation du tJavaRow , avec l'utilisation du Try / Catch , qui me permet, en cas d'erreur de mon instruction principale, d'exécuter une instruction secondaire ou tout simplement de tracer mon erreur. Pour celà j'ai fais ce qui suis :
    output.DATE_HEURE = input.DATE_HEURE;
    try{
    output.DATE_HEURE = TalendDate.parseDate("yyyyMMddHHmmss",ENTRER.DATE_HEURE)
    }

    catch (Exception e) {output.DATE_HEURE ="error date"; }

    Mais marche pas.

    Quelqu'un aurait il une solution ? pour ce genre de cas.

    Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Points : 105
    Points
    105
    Par défaut
    Salut,
    pour convertir un string en date moi j'utilise un tConvertType puis un tMap : tInput -> tConvertType -> tMap -> tOutput.
    tConvertType : tu coches les cases "conversion automatique" et "définir les valeurs vides comme NULL avant de convertir" dans les paramètres

    Voici un exemple du scéma à mettre dans le tConvertType :

    Nom : tct.PNG
Affichages : 965
Taille : 13,0 Ko

    voici pour le tMap :

    Nom : tm2.PNG
Affichages : 1033
Taille : 21,5 Ko

    Voilà

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 71
    Points
    71
    Par défaut dates et tmap
    Bonjour mano_bi,

    A priori je dirais que quand tu récupères tes 14 premiers caractères, à un moment donné tu te retrouves avec une chaine qu'il n'est pas possible de transformer en date, caractère incompatible comme il est indiqué.
    Et ca ne sera peut être pas la seule chaine dans ce cas.

    Tu as au moins 2 options je pense :

    le plus rapide à mettre en place
    - travailler ta chaine dans un tMap et prévoir 2 sorties. A partir du TalendDateisDate ou une autre fonction ce doit être possible et tu récupères sur l'output reject toutes les données incompatibles dans un csv (tfileouputdelimited) par exemple
    peut être plus long à mettre en place et encore
    - travailler ta chaine au préalable afin d'être sur qu'elle soit ensuite convertible en date (utiliser les fonctions disponibles nativement voire employer TOS for Data Quality qui sert à ça si tu as bcp de champs à traiter)

    En espérant t'aider et je pense que la solution n'est pas loin

    Bon courage

  4. #4
    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 normal que ça passe pas
    bonjour,je trouve normal que les données soient incompatible.Au fait pour caster ton string en date,tu dois passer par une variable dans ta tmap.
    en input(entrée),tu auras un String.dans ta variable tu aurras une date.c'est donc la varible que tu fais la conversion de tn string en date avec talend.parseDate par exemple.enfin tu donnera la valeur de cette variable à ton output(sortie) de type date.voilà

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/02/2015, 15h03
  2. Erreur d'exécution 13 : incompatibilité de type
    Par Ptikir dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/04/2009, 15h59
  3. erreur d'exécution 13 incompatibilité de type
    Par glamgeek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/03/2009, 12h03
  4. "erreur d'exécution 13 : incompatibilité de type"
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 19/07/2007, 15h47
  5. erreur d'exécution 13, incompatibilité de type
    Par PHPdudimanche dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/06/2007, 15h20

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