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

MySQL Discussion :

Generation fichier CSV et lignes intempestives


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Generation fichier CSV et lignes intempestives
    Bonjour,

    J'ai 3 tables sql comme ceci

    table 1 : champa , champb , champc , champd
    table 2 : champe , champf , champg
    table 3 : champh , champi , champj

    champd = champe
    champg = champh

    Au final je recupêre champa ,champb , champc , champf , champi

    Dans mon fichier csv : champa ,champb , champc , champf , champi forme un chaine séparé par des points virgules. Cette chaine est doublée par elle même entre côtes.

    Problème dès qu'un côte est présent il y a un retour à la ligne .

    J'ai donc :

    champa;champb;champc;champf;champi;
    "champa;champb;champc;champf;champi
    "

    au lieu de :

    champa;champb;champc;champf;champi;"champa;champb;champc;champf;champi"

    Mes tables n'ont pas de retour à la ligne au format SQL.

    D'où vient ce plantage ? Le programme tourne dans un programme automatique est doit générer 300 à 500 lignes par jour qui doivent respecter cette norme >> champa;champb;champc;champf;champi;"champa;champb;champc;champf;champi" . Tous les jours le fichier est rejetté à cause de ces saut de lignes intempestifs. Et il faut perpetuellement tout reprendre à la main c'est chiant.

    Merci de m'aiguiller

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Regardez l'explication complète de SELECT INTO OUTFILE dans la doc MySQL
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Après recherche il s'avère que l'erreur est des tabulations et retour à la ligne invisible.

    J'explique.

    Dans le process décris des tables de données sont en CSV . Il faut calculer la longueur des champs pour comprendre l'erreur.

    Exemple avec "02" > longueur = 2 ? Et bien non ! A ma plus grande suprise , j'ai longueur = 3 ! Il faut donc faire un trim() en précisiant les caractères à prendre, ici le caractère "0" et "2" respectivement en 1er et 2eme position. La 3eme position est un caractère fantome (tabulation ou retour à la ligne) .

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Et donc votre problème est ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Le problème est résolu

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour pallier le problème, il faut combiner les fonctions SUBSTRING(chaine, debut, longueur) / SUBSTR(chaine, debut, longueur) avec la fonction LENGTH()-1 (- 1 pour enlever la tabulation ou le retour à la ligne intempestif).
    Dernière modification par ced ; 11/03/2015 à 21h40.

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

Discussions similaires

  1. [PERL] Normaliser un fichier csv : de lignes en colonnes
    Par nicolep dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 25/11/2008, 14h09
  2. [CSV] Ajouter et supprimer des ligne dans un fichier CSV
    Par gpsevasion dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2007, 17h00
  3. [CSV] Compter les lignes d’un fichier csv
    Par sam01 dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 11h16
  4. [XSLT][>CSV]retour a la ligne dans une cellule d'un fichier csv
    Par ujoodha dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 09/07/2006, 12h08
  5. [CSV] Ne lire que la premiere ligne d'un fichier CSV
    Par passie dans le forum Langage
    Réponses: 7
    Dernier message: 05/07/2006, 12h02

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