|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 263 ![]() |
Bonjour,
J'utilise MySQL (open source) depuis peu. J'ai créé des tables avec des colonnes de types varchar. J'initialise mes tables en y chargant le fichier *.txt qui contient les données. Pas de problème. Mais en affichant tte la table avec un SELECT * FROM ma_table; je vois des colonnes qui s'affiche sans problèmes. Pour d'autres, il ya des troncatures inexpliquées. Par ex, au lieu d'afficher la chaine "pc127", il m'affiche c127 ou encore pire: 7. Pourtant mes colonnes sont de types varchar(30): il ya de la place! D'après le manuel officiel le type varchar supprime automatiquement les blancs à la fin d'une chaine, donc je ne crois pas que cela vient du type... Remarque: ces troncatures surviennement surtout pour la 1ère et la dernière colonne d'une table donnée... Bref, qqun a t-il une idée? Merci |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : février 2005 Messages : 349 ![]() |
que contient exactement ton fichier txt. est ce des requetes sql ?
sur quoi est installé ton serveur mysql. Comment fait tu pour charger tes données? Est ce que ton fichier txt est transféré d'un système windows à un système linux . si c'est le cas je te conseile de faire un dos2unix. Il faudrait égélement que tu regarde si ton fichier txt n'a pas de caractère à la C**: ex retour chariot mal formaté etc. tu peux voir ça avec un editeur de texte genre notepad++ et en affichant les caractères spéciaux ou en hexa si tu ty connais. Enfin, il faut plus d'infos quoi.... Cordialement |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 263 ![]() |
Bonjour,
Mon fichier pc.txt contient un tableau qui repertorie tous les pc d'un parc informatique avec leur référence unique, marque, capacité disque... La 1ère colonne est pour l'identifiant de la machine, la 2è la marque, 3è modèle etc... J'ai obtenu ce fichier en faisant un C/C à partir du fichier excel original. Pour charger ce fichier: LOAD DATA LOCAL INFILE 'C:/.../pc.txt' INTO TABLE table_des_pc FIEDS TERMINATED BY '\t'; Ce fichier ne contient aucune commande, juste les données sus-citées. Je travaille exclusivement sous WinXP, pas de Linux. Le serveur est installé sur la machine meme où je travaille. (Mais mon application sera amené par la suite à interroger la BD à partir de postes distants du poste où tournera ce serveur). L'interface pour créer ma BD et mes tables est en fait la fenêtre de commande DOS. Je me connecte en tapant un mot de passe. Puis, je crée ma BD très artisalement en tapant les requetes SQL. |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : février 2005 Messages : 349 ![]() |
tes valeurs sont elles séparés par des ;?
y'a t'il des caractères genre ' _ dans tes donnes brutes ? Si oui il faut que tu les déspécialise (je pense ) regarde du cote de la focntion quote regarde aussi ma reponse à cette question cela peut t'aider. Pers o j'utilise cette technique plutot qu'load date qui est deprecated http://www.developpez.net/forums/sho...d.php?t=325684 et tu as regardé les caractère à la c** ? |
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
A ta place j'utiliserai des fichier .csv plutot que des .txt
Ensuite tu devrai definir un separateur et un caractere qui entoure tes champs dont tu es sur qu'il n'apparai pas (un truc du style "|" ou bien "~"). exemple : ~toto~|~titi~|~tata~ ensuite en faisant ca ca devrait marcher Code :
|
||
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 263 ![]() |
Citation:
![]() Apparemment en enregistrant le fichier txt en .csv résoud le problème des troncatures. Encore merci. |
|
|
|
00
|
|
|
#7 | |
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 263 ![]() |
Citation:
1)Mon appli est finie depuis un certain temps. Mais j'ai une question pour ma culture personnelle (suite aux posts d'overider): pour les commentaires ou les posts des forums, on trouve toute sortes de caractères y compris des caractères spéciaux. Maintenant si on veut stocker un post dans un champ d'une table de la BD, comment fait-on pour échapper les caractères spéciaux? Y a-t-il un outil ou une appli qui se charge de cela en arrière-plan càd qui rajoute un '\' là où il faut? 2)Copie d'un fichier .csv avec 4 champs: Les guillemets ont été ajoutés automatiquement dans les champs qui contiennent le caractère spécial ';' La commande pour charger ce fichier: Code :
LOAD DATA INFILE 'fichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '"'LINES TERMINATED BY '\r\n'; Merci |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com