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

Outils MySQL Discussion :

Importation d'une base access : pas de chiffres après la virgule


Sujet :

Outils MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut Importation d'une base access : pas de chiffres après la virgule
    Bonjour à tous,
    Je suis en train de réaliser un formulaire de requète sur le web pour une base de donnée destinée à la recherche en linguistique. En réalité c'est plus un gigantesque tableau qu'une base de donnée (78 champs, 10800 tuples!!!)...

    Le tableau a été créé sous access, j'ai voulu l'importé dans MySQL, pour cela j'ai exporter ma table dans un fichier texte et j'ai recréer une table similaire dans MySQL (oui j'ai resaisie les 78 champs à la main ) et j'ai appelé la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LOAD DATA INFILE 'file_name.txt' INTO TABLE ma_table
    A ma grand surprise ça a marché du premier coups, mais dans les champs comportant des virgules (float), je n'ai plus que des entier... MySQL m'a tout tronqué! J'ai vérifié dans le fichier texte, les nombres sont bien avec leur virgules.

    Y'a surement une option à mettre dans la fonction LOAD DATA mais je suis pas un expert de MySQL, sinon faut peut-être modifier le fichier texte, en voici un extrait (attention c'est pas bien lisible c'est juste pour vous montrer comment c'est encodé) :

    5 "abandonné" "ab@done" "VER" 0,52 "a.b@.do.ne" 4,00 ".a.b.an.d.o.nn.é" ".a.b.@.d.o.n.e" "(a-a.b-b.an-@.d-d.o-o.nn-n.é-e)" 9,00 7,00 7,00 10,00 5,00 1,00 4,00 0,00 11,00 1,00 10,00 0,00 1,00 1,00 0,00 0,00 312,80 7143,90 39,00 411,79 403,50 9376,30 42,00 481,33 88,20 1178,60 61,00 973,32 89,50 1034,80 110,00 1959,12 655,00 47400,63 12,00 27,60 110,00 1959,12 741,00 18841,00 97,10 96,67 73,13 68,23 206,00 4094,00 89,44 85,90 19,71 10,37 722,00 33675,00 780,00 18222,00 562,00 7104,00 99,59 97,34 96,03 95,88 100,00 100,00 99,86 69,67 74,16 75,03 41,23 32,80
    Bref vous voyez bien qu'il y'a des nombre à virgule.

    Faut peut-être spécifié à MySQL que les nombre sont séparé par des tabulation?

    Merci d'avoir lu ce message jusqu'a la fin,

    A bientot,
    Andréas

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut
    Bonjour,
    Je n'ai toujours pas trouvé de solution à mon problème...
    J'ai essayé avec le fichier Text généré par Access, en exportant ma base sous Excel puis en l'enregistrant en .csv mais il ne me garde toujours pas les chiffres après la virgule!

    Si quelqu'un s'y connait en importation Access/Excel sous MySQL merci de me donner la marche à suivre .

    Y'a aussi un autre problème c'est que les champs vide sont automatiquement tranformé en "0" alors que je n'ai pas mis de clause "NOT NULL" et ni de "DEFAULT" lors de la création de la table.

    Merci de votre aide, ça serait vraiment bien si je pouvais trouver une solution,

    A+
    Andréas

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut 2 méthodes que je viens de tester.
    1) La première, la plus simple est d'utiliser "MySQL Migration Toolkit" (http://www.mysql.com/products/tools/migration-toolkit/). Ce produit te transcrit la structure ainsi que le contenu de tes tables access dans ta base MySQL. C'est pas mal du tout.
    2) La deuxième, avant d'exporter la table access en format txt, j'ai modifié dans le panneau de configuration\Options Régionales\Nombres\Symbole décimal = . au lieu de la virgule (MySQL ne comprend pas 0,00 il attend un point en séparateur décimal). J'exporte ensuite ma table access au format txt en mettant en option : Tabulation comme séparateur et " comme délimiteur de texte. Je vérifie la cohérence du fichier txt. Je peu ensuite lancer le Load Data suivant :
    LOAD DATA INFILE 'C:/test.txt' INTO TABLE test.test
    FIELDS TERMINATED BY '\t' /** Champ séparé par Tabulation **/
    OPTIONALLY ENCLOSED BY '"' /** délimiteur de Texte **/
    ESCAPED BY '\\' /** Caractère d'échappement **/
    LINES TERMINATED BY '\r\n' /** Fin de ligne **/;
    Dans cette dernière méthode il mettra la valeur 0 dans les zones numérique qui sont null, il faudra alors exécuter : "UPDATE NomDeTable SET NomDeChamp = null WHERE NomDeChamp = 0;"

    Si çà peut t'aider, Cyril.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut
    Un grand merci à toi Cyril!!!

    J'ai pas encore testé ta technique mais ça me semble être la bonne .

    Par contre pour le 0, en fait j'ai des champs où il faut le zéro et des champs où il le faut pas, ce qui complexifie un peu la chose mais bon je me débrouillerai.

    Je test ça d'ici peu et je te donne mon retour.

    Encore merci, à bientôt,
    Andréas

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut
    J'ai testé MySQL Migration ToolKit et c'est une vraie merveille!!!!

    Tout a marché sans aucun problème, bizarre qu'on en parle pas plus sur internet... En tout cas en faisant des recherche j'avais trouvé pleins de méthode mais rien qui parlait de migration toolkit.

    Sinon, j'ai aussi testé en remplacant les virgule par des points et ça a fait pareil... bizarre.

    A+
    dede

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

Discussions similaires

  1. [WD15] Importation d'une Base Access dans Hyperfile
    Par forca dans le forum WinDev
    Réponses: 3
    Dernier message: 08/04/2010, 11h22
  2. importation d'une base Access
    Par abertaud dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/06/2007, 15h43
  3. Erreur d'import d'une base Access dans WinDev
    Par freebsnet dans le forum Access
    Réponses: 3
    Dernier message: 21/02/2007, 09h40
  4. Importer/Exporter une base Access en Excel
    Par Drisso dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/02/2007, 13h19
  5. Import d'une base Access
    Par fred_nut dans le forum Access
    Réponses: 1
    Dernier message: 15/01/2007, 09h34

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