Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 05/10/2007, 10h00   #1
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
Par défaut LOAD DATA UTF8

Bonjour,

Je cherche à charger une base a partir de fichiers csv.

Le truc c'est que je veux une base en utf8

Je commence par creer ma base :
Code :
1
2
 
CREATE DATABASE toto DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
je cree ensuite une table puis ensuite je cherche a faire un LOAD DATA INFILE.

Si je fait un load data du style:
Code :
1
2
3
4
5
 
LOAD DATA INFILE '/home/.....' 
  REPLACE INTO TABLE TEST 
  FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES
  (col1,col2...);
.. le chargement de fait mais les champs contenants des accents sont tronqués. par exemple un champ contenant la chaine "spécialité" dans mon fichier csv sera egal à "sp"

J'ai alors essayer de faire ceci :
Code :
1
2
3
4
5
 
LOAD DATA INFILE '/home/.....' 
  REPLACE INTO TABLE TESTCHARACTER SET "utf8"
  FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES
  (col1,col2...);
avec ou sans les guillemets autour de utf8, il y a une erreur de syntaxe.

Est ce que quelqu'un pourrait m'aider a charger des tablkes correctement en utf8 ou me rediriger vers un lien qui decrive la demarcxhe a suivre ?

je suis sur un serveur unix. J'ai meme essayé de convertir mes fichiers csv en utf8 avec ceci :
Code :
1
2
 
iconv -f iso8859-1 -t utf8 fichier.csv
mais rien a faire


help needed thanks
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2007, 17h11   #2
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
c'est bon j'ai trouvé la demarche a suivre, j'etait pas loin.

Pour ceux que ça peut interesser voici les etapes a suivre :
1. creer la base en specifiant le charset et l'encodage :
Code :
1
2
 
CREATE DATABASE base DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2. creer les objets normalement. les champs seront automatiquement en utf8

3. Convertir les fichiers csv en utf8
Code :
1
2
iconv -f ISO-8859-1 -t UTF-8 fichier.csv > fichier.csv.utf8
4. faire un LOAD DATA INFILE classique avec le fichier csv.utf8


voila
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2009, 11h44   #3
Membre régulier
 
Inscription : mars 2007
Messages : 135
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 135
Points : 76
Points : 76
Bonjour !

J'ai cru que ce fil allait me sauver, mais j'ai suivi ta démarche (la dernière postée) et ça ne marche pas chez moi.

Pour mon cas précis : Je dispose d'un fichier .csv qui a été exporté avec une fonction de phpmyadmin (au format compressé .gz je crois, mais la décompression s'est passée sans problème). Quand je lis ce fichier (par exemple avec "more monfichier.csv", je vois bien les accents et les cédilles sur la console.

Je fais la commande :
LOAD DATA INFILE monfichier.csv INTO TABLE MATABLE FIELDS [etc...] lines terminated by '\n'

Résultat : 20244 lignes affectées, 42936 warnings.


Si je converti le fichier avec iconv -f, ça ne marche pas.


Même résultats que ma table et ses champs textes soient au format "utf_general_ci", ou latin1


Quelqu'un peut m'aider ?

(edit : le schéma d'origine est au format "latin1", définit dans les création des tables)
Concombre Masqué 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 06h26.


 
 
 
 
Partenaires

Hébergement Web