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 :

Cellule vide d'un CSV vers BDD


Sujet :

MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Par défaut Cellule vide d'un CSV vers BDD
    Hello !

    J'essaye d'insérer un fichier CSV qui comporte par ci par là des cellules vide et j'aimerais savoir comment faire que cela soit pris en compte sans erreur et qu'il les transforme en "null"

    Voici une ligne de mon csv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    11;CH GEORGE SAND CHEZAL BENOIT;180000184;;RUE;DE L'EGLISE;18160;CHEZAL BENOIT;18;Cher;2.11369446;46.82441673;CHSLMM
    Comme on peut remarquer il y a une valeur vide juste avant "RUE" (pas de numéro de rue)

    En ce qui concerne l’importation dans MySQL, je laisse tout à défaut, j'ajoute mon fichier csv, je choisi "CSV" dans le menu déroulant "format" et colonne séparé par " ; "

    Aurais je loupé un réglage quelque part ?

    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 130
    Par défaut
    Et quel problème rencontres-tu ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Par défaut
    Ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO `structure` VALUES ('11', 'CH GEORGE SAND CHEZAL BENOIT', '180000184', '', 'RUE', 'DE L\'EGLISE', '18160', 'CHEZAL BENOIT', '18', 'Cher', '2.11369446', '46.82441673', 'CHSLMM');
     
    MySQL a répondu : Documentation
    #1366 - Incorrect integer value: '' for column 'numvoie' at row 1

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 130
    Par défaut
    Une chaine vide n'est pas un NULL *
    (* sauf pour Oracle qui ne respecte pas la norme du Langage SQL)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Par défaut
    Bonjour !

    Alors oui ça je sais qu'une cellule vide n'est pas null !

    Mais justement, ma question à la base c'était de savoir s'il était possible de transposer cette cellule vide vers une donnée "null" dans SQL et si oui comment !

    Merci

    Finallement j'ai juste inséré "NULL" dans toute les cellule vide est ca marche

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 908
    Par défaut
    Citation Envoyé par d3LTa7 Voir le message
    Mais justement, ma question à la base c'était de savoir s'il était possible de transposer cette cellule vide vers une donnée "null" dans SQL et si oui comment !
    voir : https://dev.mysql.com/doc/refman/8.4...ction_coalesce
    Le savoir est une nourriture qui exige des efforts.

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 458
    Billets dans le blog
    10
    Par défaut
    Les fonctions COALESCE comme ISNULL ne sont pas la solution, car elles servent à remplacer une colonne dont la valeur est inconnue (marquée "null" donc), par une valeur.
    Ici, on n'a pas une colonne marquée null, mais une valeur vide.
    Or le message d'erreur mentionne que la valeur attendue est de type integer.
    On cherche donc à insérer le contenu d'une colonne de type char (ou varchar, nchar, nvarchar ou text) dans une colonne de type integer
    Il faut passer par un transtypage de la valeur lue avant d'insérer, par exemple en combinant CASEC et CAST.

  8. #8
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 908
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Les fonctions COALESCE comme ISNULL ne sont pas la solution, car elles servent à remplacer une colonne dont la valeur est inconnue (marquée "null" donc), par une valeur.
    Ici, on n'a pas une colonne marquée null, mais une valeur vide.
    oups,
    et nullif() alors ?

    https://dev.mysql.com/doc/refman/8.4...unction_nullif
    Le savoir est une nourriture qui exige des efforts.

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

Discussions similaires

  1. [XL-2016] Copier derniére cellule vide d'un classeur ver un autre
    Par Ptitbubu75 dans le forum Excel
    Réponses: 6
    Dernier message: 16/03/2022, 13h09
  2. [POO] Importer fichier csv vers bdd mysql
    Par cyci60 dans le forum Langage
    Réponses: 24
    Dernier message: 24/03/2020, 17h50
  3. [MySQL] script import CSV vers BDD
    Par stevenP dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/05/2017, 20h33
  4. [MySQL] Script d'importation automatique de CSV vers BDD
    Par jeinny dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 11/06/2009, 16h50

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