Partie I
SQL de base
146
© Éditions Eyrolles
Écriture dans un fichier
Mécanisme inverse à LOAD DATA INFILE étudié au chapitre 2, l’exportation de données (au
format de fichiers) extraites à l’aide d’une requête peut être programmée à l’aide de la directive INTO OUTFILE de l’instruction SELECT. Une telle requête écrit dans un fichier dans un
répertoire du serveur. Le privilège FILE est requis. Le fichier cible doit être inexistant avant
d’exécuter son chargement. La syntaxe simplifiée de cette directive est la suivante :
SELECT [ { DISTINCT | DISTINCTROW } | ALL ] listeColonnes
FROM nomTable1 [,nomTable2]. [ WHERE condition ]
;
q
FIELDS décrit comment seront formatées dans le fichier les colonnes extraites de(s)
table(s). En l’absence de cette clause, TERMINATED BY vaut '\t', ENCLOSED BY vaut
'' et ESCAPED BY vaut '\\'.
– FIELDS TERMINATED BY décrit le caractère qui sépare deux valeurs de colonnes.
– FIELDS ENCLOSED BY permet de contrôler le caractère qui encadrera chaque valeur
de colonne.
– FIELDS ESCAPED BY permet de contrôler les caractères spéciaux.
q
LINES décrit comment seront écrites dans le fichier les lignes extraites de(s) table(s). En
l’absence de cette clause, TERMINATED BY vaut '\n' et STARTING BY vaut ''.
Créons le fichier « pilotes.txt » situé dans le répertoire « D:\dev », en exportant la totalité des enregistrements de la table Pilote (SELECT *) décrite au début du chapitre. Le
fichier est ensuite ouvert à l’aide du WordPad. Notez l’utilisation du double « \ » pour désigner une arborescence Windows. Le caractère NULL est exporté par le caractère « \N ».
Figure 4-23 Création d’un fichier
INTO OUTFILE 'cheminEtNomFichier'
[FIELDS [TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char' ] ]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string'] ]
SELECT * INTO OUTFILE 'D: \\dev\\pilotes.txt'
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
FROM Pilote;
LINES STARTING BY 'import-Pilote' TERMINATED BY '$\n'
Précédent

- 168/418

Suivant