Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Discussion fermée Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2007, 16h45   #1
Invité de passage
 
Inscription : décembre 2002
Messages : 12
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : décembre 2002
Messages : 12
Points : 2
Points : 2
Par défaut Erreur Data too long For column

Bonjour,

Je suis débutant en Mysql et j'ai acheté le livre MySQL 5 chez M A , et lors de l'import d'un fichier de données CSV dans une table j'ai l'erreur suivante :

"ERROR 1406 (22001) : Data too long for column 'CodeGenres' at row 1"

J'ai d'abord pensé à un probleme de longueur de fichier, j'ai changé le nombre de caractères de la colonne de 4 à 8 abitrairement bien que les données du fichier ne comptaient pas plus de 4 caractères.

A part la première ligne qui comporte le nom des colonnes mais qui est ignorée par la commande 'IGNORE 1 LINES' je ne vois pas de données qui clochent.

J'ai aussi pensé au jeu de caractères par défaut de mysql et je l'ai mis en utf8 au lieu de latin1_swedish. Mais rien.

Merci de votre aide.

Bonne journée,

FABRICE.
fabrice.77 est déconnecté   Envoyer un message privé 00
Vieux 10/02/2007, 18h36   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
s'il s'agit de mon bouquin, je crains que ce ne soit une erreur de points remplacés par des virgules lors de l'exportation...

Je regarde ça ce soir !

avec toutes mes excuses,
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé 00
Vieux 10/02/2007, 18h44   #3
Invité de passage
 
Inscription : décembre 2002
Messages : 12
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : décembre 2002
Messages : 12
Points : 2
Points : 2
Par défaut Data too long

Effectivement c'est ce livre et je te remercie pour la réponse et pour le livre.

J'essai de refaire le fichier csv mais rien, ou puis je trouver une liste des caractères d'échappement pour mieux comprendre.

Merci encore

Fabrice,
fabrice.77 est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 03h43   #4
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Je pense que ton erreur est de ne pas indiquer que les apostrophes sont échappées par elles-mêmes (ce qui est normalisé en SQL) :
Code :
1
2
3
4
5
6
7
load data infile 'c:/test/livres.csv' 
into table livres
fields terminated by '\t'
optionally enclosed by '' escaped by ''''
lines terminated by '\n'
ignore 1 lines ;
Quant à mon erreur à moi, c'est que la dernière fois que j'ai généré ces foutus fichiers, j'ai oublié de remettre mon Windows avec le . comme séparateur décimal... tu trouveras une version corrigée de livres.csv ici : http://antoun.developpez.com/mysql5/...ons/livres.csv

Je fais le nécessaire auprès de MicroApp pour que les fichiers à télécharger soient corrigés et assortis de la solution.

Merci de m'avoir mis le nez sur ce problème !

PS : quant aux caractères d'échappement, les voici : http://dev.mysql.com/doc/refman/5.0/...ng-syntax.html
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 10h03   #5
Invité de passage
 
Inscription : décembre 2002
Messages : 12
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : décembre 2002
Messages : 12
Points : 2
Points : 2
Bonjour Antoine,

Je te remercie pour ta réponse qui devrait régler le problème.

Mais mon problème se situe sur le fichier Genres.csv !

Je pense que cela ne change pas grand chose, mais je le signale.

Je n'ai pas chargé la table livre car sans genres, ce n'est pas possible.

Encore merci pour ta rapidité.

Bon dimanche.

Fabrice.
fabrice.77 est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 19h49   #6
Invité de passage
 
Inscription : décembre 2002
Messages : 12
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : décembre 2002
Messages : 12
Points : 2
Points : 2
Par défaut data truncated

Voici après changement et conseils d'Antoine ce qu'il m'arrive.

les commandes sql sont les suivantes et le résultat sont les suivants :
Code session MySQL :
1
2
3
4
5
6
7
8
 
mysql > LOAD DATA INFILE 'c:\\documents and settings\\fabrice gressent\\mes documents\\mes telechargements\\chap04\\genres.csv'
-> INTO TABLE genres
-> FIELDS terminated BY ';' OPTIONALLY ENCLOSED BY '"'
-> LINES terminated BY '\r\n'
-> IGNORE 1 LINES ;
ERROR 1265 (01000) DATA truncated FOR COLUMN 'TypeGenre' at row 3
mysql>

Mon fichier csv est le suivant :

Code fichier csv :
1
2
3
4
5
6
7
8
9
10
11
"CodeGenre";"Genre";"TypeGenre"
"Actu";"Actualite";"NF"
"Cu";"Curiosite";"NF"
"Fan";"Fantaisie";"F"
"FAQ";"Fantastique";"F"
"Litt";"Litterature";"F"
"Pol";"Polar";"F"
"SC";"Sciences";"NF"
"SF";"Sciences-Fiction";"F"
"SH";"Sciences Humaines";"NF"
"StPK";"Steampunk";"F"

d'abord qu'est ce que le row 3 et y a t'il un moyen de faire ressortir les espaces, les retours chariots dans le bloc note .

Encore merci pour votre aide, cela me bloque un peu.

Fabrice
fabrice.77 est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 21h36   #7
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Je viens de faire le test. Chez moi, tes données se chargent sans problème avec ta commande. J'aurais donc tendance à penser que c'est le \r\n qui pose problème chez toi (es-tu sur Windows ?).

Par contre, je suis un peu surpris parce que le fichier que j'ai mis au téléchargement chez microapp n'est pas celui-là. Les données sont les mêmes, mais les colonnes sont séparées par des tabulations et encadrées par des apostrophes :

Code fichier csv :
1
2
3
4
5
6
7
8
9
10
11
'CodeGenre'	'Genre'	'TypeGenre'
'Actu'	'Actualité'	'NF'
'Cu'	'Curiosité'	'NF'
'Fan'	'Fantasy'	'F'
'FAQ'	'fantastique'	'F'
'Litt'	'Littérature'	'F'
'Pol'	'Polar'	'F'
'SC'	'Sciences'	'NF'
'SF'	'Science-Fiction'	'F'
'SH'	'Sciences Humaines'	'NF'
'StPk'	'Steampunk'	'F'

Ce qui se charge avec :

Code sql :
1
2
3
4
5
load data infile 'c:\\documents and settings\\fabrice gressent\\mes documents\\mes telechargements\\chap04\\genres.csv'
into table genres
fields terminated by '\t' optionally enclosed by ''''
lines terminated by '\r\n'
ignore 1 lines ;

Je précise que le '''' en gras après enclosed by est (typographiquement) quatre apostrophes, ce qui désigne (sémantiquement) le caractère apostrophe.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 21h44   #8
Invité de passage
 
Inscription : décembre 2002
Messages : 12
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : décembre 2002
Messages : 12
Points : 2
Points : 2
Par défaut data truncated

Bonsoir Antoine,

Je suis sous windows XP pro SP 2,

Le fichier que j'ai mis dans ma question est un fichier que je me suis permis de récrire.

Je vais le remplacer par le tien , et reprendre tes commandes sql.

OK ! pour l'explication sémantique concernant les apostrophes que je n'avais par comprise.

Par ailleurs, au passage pourrrais tu me dire si il est possible de développer une application de SGBD avec mysql et visual basic express 2005 ?

Merci encore pour ton aide et pour ce bouquin très bien fait.

A très bientôt, si je rencontre d'autres soucis.

Fabrice.
fabrice.77 est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 21h57   #9
Invité de passage
 
Inscription : décembre 2002
Messages : 12
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : décembre 2002
Messages : 12
Points : 2
Points : 2
Par défaut data truncated

C'est encore moi,

J'ai refais le fichier csv avec le modèle d'antoine et rentrer les mêmes commandes

et j'ai une erreur data truncated for column 'typegenre' at row 3

il y un problème à partir du 3éme enregistrement ??

Là j'ai un peu de mal.

Mais je cherche, si l'un d'entre vous a une idée,

Fabrice,
fabrice.77 est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 22h56   #10
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
que donne la requête suivante sur ta base ?

Code :
SHOW CREATE TABLE genres ;
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé 00
Vieux 11/02/2007, 23h21   #11
Invité de passage
 
Inscription : décembre 2002
Messages : 12
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : décembre 2002
Messages : 12
Points : 2
Points : 2
Par défaut data truncated

La requete donne ceci : (au passage si tu as une technique pour copier dans la console merci).

Code :
1
2
3
4
5
6
7
CREATE TABLE 'genres' (
'CodeGenre' varchar(4) character SET latin1 NOT NULL DEFAULT '',
'Genre' varchar(30) character SET latin1 NOT NULL,
'TypeGenre' enum('N','NF') character SET latin1 DEFAULT NULL,
PRIMARY KEY ('CodeGenre'),
UNIQUE KEY 'Genre' ('Genre')
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
Si cela peut aider ??

Merci d'avance,

Fabrice
fabrice.77 est déconnecté   Envoyer un message privé 00
Vieux 12/02/2007, 01h08   #12
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Tout ça me paraît correct... (pour copier dans la console : clic droit et coller).

On ne va pas épiloguer 50 ans là-dessus... voici le remplissage de la table Genres en une requête SQL :
Code :
1
2
3
4
5
6
7
8
9
10
INSERT INTO `genres` VALUES ('Actu','Actualité','NF'),
('Cu','Curiosité','NF'),
('Fan','Fantasy','F'),
('FAQ','fantastique','F'),
('Litt','Littérature','F'),
('Pol','Polar','F'),
('SC','Sciences','NF'),
('SF','Science-Fiction','F'),
('SH','Sciences Humaines','NF'),
('StPk','Steampunk','F');
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé 00
Vieux 12/02/2007, 09h19   #13
Membre chevronné
 
Avatar de debug
 
Inscription : avril 2002
Messages : 1 034
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 1 034
Points : 792
Points : 792
Les fichiers exemples ont été corrigés et remis en place par Antoun.
__________________
May the Troll, be with you
(Que le troll soit avec toi)
debug est déconnecté   Envoyer un message privé 00
Discussion fermée Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h56.


 
 
 
 
Partenaires

Hébergement Web