Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes 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 19/01/2011, 13h12   #1
Membre du Club
 
Sylvain
Inscription : avril 2002
Messages : 132
Détails du profil
Informations personnelles :
Nom : Sylvain
Localisation : Canada

Informations forums :
Inscription : avril 2002
Messages : 132
Points : 57
Points : 57
Envoyer un message via MSN à Sylvain245
Par défaut Select into outfile et retour chariot

Bonjour,

J'ai une requête comme suis :

Code :
1
2
 
SELECT `a`, `b` FROM `c` INTO OUTFILE 'repertoireEtNomFichier.txt';
Le résultat est de plusieurs enregistrement

a b a b a b a b....

et j'aurais voulu que dans le fichier.txt, après chaque enregistrement, il y est un saut de ligne pour un résultat du genre:

a b
a b
a b
...


Une idée de la solution ?

Merci
Sylvain245 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 13h28   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 986
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 986
Points : 18 234
Points : 18 234
Envoyer un message via MSN à CinePhil
La doc MySQL dit ceci :
Citation:
SELECT ... INTO OUTFILE est le complément de LOAD DATA INFILE; La syntaxe pour la partie export_options de la requête se compose des mêmes clauses FIELDS et LINES que celles utilisées avec la commande LOAD DATA INFILE. See Section 13.1.5, « Syntaxe de LOAD DATA INFILE ».
Dans le fichier résultant, seul les caractères suivants sont protégés par le caractère ESCAPED BY :
  • Le caractère ESCAPED BY
  • Les premier caractère de FIELDS TERMINATED BY
  • Les premier caractère de LINES TERMINATED BY
  • ASCII 0 est convertit en ESCAPED BY suivi de 0 (ASCII 48).

Si le caractère FIELDS ESCAPED BY est vide, aucun caractère n'est protégé, et NULL vaut NULL, et non \N. Il est probable que ce ne soit pas une bonne idée de spécifier un caractère de protection vide, en particulier sir les valeurs de vos champs peuvent être n'importe quoi.
La raison de ce qui précède est que vous devez impérativement protéger chaque caractère FIELDS TERMINATED BY, ESCAPED BY, ou LINES TERMINATED BY pour assurer une relecture fiable du fichier. Le caractère ASCII 0 est échappé pour assurer la lisibilité sur certains clients.
Comme le fichier résultant ne se doit pas d'être syntaxiquement conforme à SQL, vous n'avez besoin d'échapper rien d'autre.
Voila un exemple de relecture de fichier au format utilisé par plusieurs anciens programmes.
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 13h40   #3
Membre du Club
 
Sylvain
Inscription : avril 2002
Messages : 132
Détails du profil
Informations personnelles :
Nom : Sylvain
Localisation : Canada

Informations forums :
Inscription : avril 2002
Messages : 132
Points : 57
Points : 57
Envoyer un message via MSN à Sylvain245
Merci bien,

La solution était de rajouter la ligne
Code :
1
2
 
 LINES TERMINATED BY '\r\n';
à la fin de la requête
Sylvain245 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 01h21.


 
 
 
 
Partenaires

Hébergement Web