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 :

alimentation de table à partir d'un fichier excel


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Points : 21
    Points
    21
    Par défaut alimentation de table à partir d'un fichier excel
    Bonjour,

    J'ai creer un job qui permet à partir d'un fichier excel de créer une table et d'insérer des valeurs dans celle ci. Une fois le job créer je l'exécute, tout marche nickel :
    la table se crée dans la base de donnée, elle prend les valeurs du fichiers excel.

    Mais j'ai 2 soucis :
    - dans ma table, les accents sont remplacé par des carrés. Comment je fais pour les gérer et est ce que après quand je ferais un rapport avec irepport et jasper, les carrés vont se transformer en accent?

    - mon 2ième soucis c'est que j'ai une erreur de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For input string: "Horsect"
    or "Horsect" est le champ de ma table et les valeurs sont des entiers donc j'ai défini le type de données en integer. Je ne vois pas mon erreur.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 195
    Points : 98
    Points
    98
    Par défaut
    Bonjour,

    Pour la deuxième erreur, tu as du oublier de préciser que la première ligne de ton fichier excel contient le nom des champs, donc qu'il ne faut pas la prendre en compte.

    Sinon pour la première erreur, regarde au niveau des options avancés quand tu clic sur ton composant tBddInput. Tu as la possibilité de gérer le type d'encodage.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    Salut Gwen,

    Pour les accents, il faut que tu "joue" avec le "Charset" ou "Encoding Type" qui se trouve dans l'onglet "Advanced settings" du composant tFileInput par exemple.

    Pour la seconde erreur, je ne sais pas, il faudrait que je vois les données et la définition de la table...

    Bon courage
    A+

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Merci de ta réponse
    Je vais voir tout cela je te tiens au courant.

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    L'histoire des accents c'est réglé, c'était un problème d'encodage.
    Mais pour cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Démarrage du jobimportationetcreationdetable a 16:51 22/09/2009.
     
    [statistics] connecting to socket on port 4058
    [statistics] connected
    Exception in component tMysqlOutput_1
    java.lang.NullPointerException
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.tFileInputExcel_1Process(importationetcreationdetable.java:1064)
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.tMysqlCommit_1Process(importationetcreationdetable.java:279)
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.runJobInTOS(importationetcreationdetable.java:2087)
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.main(importationetcreationdetable.java:1980)
    Debug: format string is 000
    For input string: "Horsect"
    [statistics] disconnected
    Job importationetcreationdetable terminé à 16:51 22/09/2009. [Code sortie=0]

    J'ai bien cocher : "Utiliser la première ligne pour les noms de colonne" mais j'ai toujours le message d'erreur.
    Je crois que j'ai 2 erreurs en faite.

  6. #6
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Hum tu ne crois pas que c'est le même problème que dans ta discussion suivante : http://www.developpez.net/forums/d81...entation-base/

    Avec pour solution :

    ....
    1. dans ton job il faut fermer la connexion à ta base de données en mettant ton tMysqlCommit non pas sur le tMysqlOutput mais sur le tFileInputDelimited avec un "OnSubjobOk" car si tu procèdes comme tu le fais le commit se fera aléatoirement sur le composant tMysqlOuput alors que le sous process composé du tFileINputDelimited + tMap + tMysqlOuput n'est peut être pas finit. A ce propos je te conseil de lire cette page
    ...
    En replaçant dans ce que je viens de citer, tFileInputDelimed par le premier composant de ton sous process soit (il me semble) ton fichier csv

    D'ailleurs pour l'autre erreur il me semble que les réponses se trouvent aussi dans la discussion précédemment citée. Quand dis-tu ?

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Hum tu ne crois pas que c'est le même problème que dans ta discussion suivante : http://www.developpez.net/forums/d81...entation-base/

    Avec pour solution :

    Citation:
    ....
    1. dans ton job il faut fermer la connexion à ta base de données en mettant ton tMysqlCommit non pas sur le tMysqlOutput mais sur le tFileInputDelimited avec un "OnSubjobOk" car si tu procèdes comme tu le fais le commit se fera aléatoirement sur le composant tMysqlOuput alors que le sous process composé du tFileINputDelimited + tMap + tMysqlOuput n'est peut être pas finit. A ce propos je te conseil de lire cette page
    ...
    En replaçant dans ce que je viens de citer, tFileInputDelimed par le premier composant de ton sous process soit (il me semble) ton fichier csv
    Non ce n'est pas la même erreur car j'ai bien mi le tMysqlCommit sur mon fichier csv.
    Pour ce qui est de cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Démarrage du jobimportationetcreationdetable a 09:08 23/09/2009.
     
    [statistics] connecting to socket on port 3434
    [statistics] connected
    Exception in component tMysqlOutput_1
    java.lang.NullPointerException
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.tFileInputExcel_1Process(importationetcreationdetable.java:1092)
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.tMysqlCommit_1Process(importationetcreationdetable.java:279)
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.runJobInTOS(importationetcreationdetable.java:2160)
    	at projet_reporting.importationetcreationdetable_0_1.importationetcreationdetable.main(importationetcreationdetable.java:2053)
    Debug: format string is 000
    [statistics] disconnected
    Job importationetcreationdetable terminé à 09:08 23/09/2009. [Code sortie=0]
    Ce n'est pas la même que l'autre, du moins le log n'est pas identique...

  8. #8
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Effectivement.

    Il semblerait que tu envoies une valeur nulle dans un champ alors qu'on attend une valeur non nule.

    Vérifie bien la longueur des champs et la longueur des chaines de caractères que tu envoies dans ce champs.

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Mais pourtant dans mon fichier csv, il y a aucun champ nulle

  10. #10
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 195
    Points : 98
    Points
    98
    Par défaut
    Peut être qu'on y verait plus clair si on pouvait voir ton job et le schéma de ton composant tMysqlOutput_1

    Edit : Quoique ca ressemblerait assez à ce topic :
    http://www.talendforge.org/forum/vie....php?pid=27130

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    row.yourColumnName==null?null:StringHandling.TRIM(row.yourColumnName)

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 64
    Points : 28
    Points
    28
    Par défaut
    Bonjour, en fait, je suis débutante en "Talend" et je voudrais créer un job qui me crée une nouvelle table et l'alimente avec un fichier excel.

    Est ce que quelqu'un peut m'aider s'il vous plait? Même en m'indiquant les composants à utiliser car je ne sais pas s'il faut utiliser le composant "tMysqlOutput" ou "tCreateTable" ou les deux

    Merci d'avance pour votre aide

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 64
    Points : 28
    Points
    28
    Par défaut
    Rebonjour, j'ai pu créer mon job mais en fait il crée la table sans l'alimenter avec les valeurs de mon fichier excel

    Est ce que quelqu'un peut m'aider s'il vous plait??

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 64
    Points : 28
    Points
    28
    Par défaut
    C'est bon, j'ai trouvé la solution, le problème était à cause de la longueur des valeurs string

    Pour le moment tout va bien, mais je suis sur que j'aurais besoin de vous dans les jours qui viennent

    à bientôt

Discussions similaires

  1. alimenter une table à partir d'un fichier EXCEL
    Par sinoun dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 29/08/2012, 10h38
  2. [AC-2003] Requête pour remplir une table à partir d'un fichier Excel
    Par olivier777 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/09/2009, 10h52
  3. [AC-2003] Mise à jour d'une table à partir d'un fichier Excel
    Par calimeroAXS dans le forum Modélisation
    Réponses: 6
    Dernier message: 03/04/2009, 09h45
  4. Alimenter un comboxbox à partir d'un fichier Excel
    Par jeremy_d dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/05/2008, 10h27
  5. alimenter une table à partir d'un fichier log
    Par info_look dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 07/01/2008, 13h05

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