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 :

Envoyer un CSV sur BDD mais avec colonnes accentu�es et contenant des espaces :/


Sujet :

MySQL

  1. #1
    Membre averti
    Homme Profil pro
    Pub
    Inscrit en
    Octobre 2018
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Pub
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Octobre 2018
    Messages : 35
    Par d�faut Envoyer un CSV sur BDD mais avec colonnes accentu�es et contenant des espaces :/
    Bonjour,
    J'ai un script qui envoie r�guli�rement (quand un fichier .csv a �t� t�l�charg� dans le dossier) le contenu CSV dans la base de donn�es.

    Pr�c�demment, pour importer le fichier, le script �tait �crit comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    $sql = 'LOAD DATA LOCAL INFILE "inscrits.csv" 
            INTO TABLE inscrits_csv 
    		CHARACTER SET UTF8
            FIELDS TERMINATED BY ";" 
            OPTIONALLY ENCLOSED BY """" 
            IGNORE 1 LINES
            (col1, col2, col3, col4, col5)';
    Le fichier contient pas moins de 40 colonnes mais seules les 5 premi�res nous int�ressaient.

    D�but de semaine, le g�rant de l'application annonce une nouvelle version des fichiers et ceux-ci contiennent des colonnes telles que "Pr�nom" ou "Image de profil".
    Maintenant, le fichier est sous cette structure :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ID;Relation ID invoicing;Nom;Prénom;Mobile;Adresse;Sexe;Date de naissance;Image de profil;
    Hors, nous aimerions r�cup�rer les donn�es de ID, Nom, Pr�nom, Date de Naissance et Image de profil.

    Comment modifier la requ�te pour que ID soit mis en colonne1, Nom en colonne2, Date de Naissance en colonne 3, Image de Profil en colonne4, Mobile en colonne5 (ce qui �tait le cas avant), vu les espaces et accents apparus dans les titres de colonne ?
    J'ai essay� avec
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    SET col1=Nom, col2=Prénom
    mais bien sur, erreur. M�me avec les noms de colonnes entour�es de '' ou "" ...

  2. #2
    Expert confirm�
    Avatar de S�b.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 344
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 344
    Billets dans le blog
    17
    Par d�faut
    Les accents ne devraient pas g�ner si le codage est bon de part et d'autre.

    Pour que les colonnes soient align�es, il faut partir du principe que ton LOAD DATA doit positionner correctement les colonnes du fichier.

    Fichier :

    ID;Relation ID invoicing;Nom;Pr�nom;Mobile;Adresse;Sexe;Date de naissance;Image de profil;
    Ta demande :

    ID soit mis en colonne1, Nom en colonne2, Date de Naissance en colonne 3, Image de Profil en colonne4, Mobile en colonne5
    Requ�te :

    LOAD DATA ...
    ...
    IGNORE 1 LINES
    (col1, @rel_id_invoicing, col2, @prenom, col5, @adresse, @sexe, col3, col4)
    Les @var peuvent �tre utilis�es pour du pr�processing, si pas de pr�processing elles seront ignor�es.

    https://dev.mysql.com/doc/refman/8.4...-preprocessing



    Attention, les cha�nes sont d�limit�es avec ' plut�t que "

  3. #3
    Membre averti
    Homme Profil pro
    Pub
    Inscrit en
    Octobre 2018
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Pub
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Octobre 2018
    Messages : 35
    Par d�faut
    J'ai r�ussi partiellement mais apr�s, et je n'ai pas tout donn�, il y a des champs "E-mail"... et cela bloque au caract�re -

    J'ai remplac� tous les accents par une lettre non accentu�e : cela a fonctionn�.
    J'ai remplac� les espaces dans les noms de colonne par un _ : pas de soucis.

    Une fois que le script rencontre une colonne avec un trait d'union, cela coince.
    Et j'ai aussi un champs avec un nom "Relation ID invoicing (Export / Octopus)"...

    Bref, je ne sais pas si c'est une bonne m�thode, mais j'ai remplac� les caract�res ( / - ) qui g�n�rent des erreurs par un "_", pr�f�rant cela au "@dummy" et cela fonctionne.
    En esp�rant qu'ils ne modifieront plus la structure du fichier, car de 7 colonnes, on est pass� � plus de 40...

    Merci de l'aide.

Discussions similaires

  1. Envoie d'email avec une pi�ce jointe contenant des espaces
    Par Avinetor dans le forum G�n�ral Python
    R�ponses: 2
    Dernier message: 25/08/2020, 11h21
  2. [DATA] Renommer colonne en nom contenant des espaces
    Par Oreo_ dans le forum SAS Base
    R�ponses: 8
    Dernier message: 16/05/2013, 15h57
  3. R�ponses: 2
    Dernier message: 20/04/2011, 11h57
  4. R�ponses: 2
    Dernier message: 08/05/2008, 12h36
  5. Group by sur Produit mais avec date qui se suivent
    Par suantay dans le forum Langage SQL
    R�ponses: 9
    Dernier message: 29/02/2008, 12h13

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