Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2007, 15h44   #1
Membre du Club
 
Inscription : 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 : 43
Points : 43
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 :
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é) :

Citation:
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
dedesite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 18h11   #2
Membre du Club
 
Inscription : 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 : 43
Points : 43
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
dedesite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 13h56   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 3
Points : 3
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.
Cyril_A est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 21h46   #4
Membre du Club
 
Inscription : 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 : 43
Points : 43
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
dedesite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 14h08   #5
Membre du Club
 
Inscription : 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 : 43
Points : 43
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
dedesite est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h42.


 
 
 
 
Partenaires

Hébergement Web