Création d'un fichier CSV avec SQL*Plus
Méthode :
Pour transférer un résultat de requête dans un fichier CSV, il faut procéder en deux étapes.
Écrire un script qui :
formate la sortie de façon adéquate (SET) ;
oriente le résultat vers un fichier (SPOOL).
encadre les données non numériques par des guillemets et sépare les colonnes par des points-virgules (||) ;
Appeler ce script pour obtenir le fichier CSV.
La sortie standard du client pourra être désactivée si le flux de données est important.
Exemple :
1
-- script /tmp/exportCsv.sql
2
SET HEADING OFF
3
SET FEEDBACK OFF
4
SET ECHO OFF
5
SET PAGESIZE 0
6
SPOOL /tmp/out.dat
7
SELECT '"' || pkFamilleDefaut || '";"' || libelle || '"' FROM tFamilleDefaut ;
8
SPOOL OFF
1
-- exécution du script /tmp/exportCsv.sql
2
@/tmp/exportCsv.sql
Attention :
Il est indispensable de procéder en deux temps : l'exécution directe de /tmp/exportCsv.sql
ne donnera pas un formatage correct.