Création d'un fichier CSV avec SQL*Plus

Il est parfois utile de transférer le résultat d'une requête vers un fichier CSV pour l'exploiter dans un contexte extérieur à Oracle. SQL*Plus est une solution simple pour y parvenir (Oracle 9i, p.213).

Pour transférer un résultat de requête dans un fichier CSV, il faut procéder en deux étapes.

  1. É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 (||) ;

  2. 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.

-- script /tmp/exportCsv.sql
SET HEADING OFF
SET FEEDBACK OFF
SET ECHO OFF
SET PAGESIZE 0
SPOOL /tmp/out.dat
SELECT '"' ||  pkFamilleDefaut || '";"' || libelle || '"' FROM tFamilleDefaut ;
SPOOL OFF
-- exécution du script /tmp/exportCsv.sql
@/tmp/exportCsv.sql

Il est indispensable de procéder en deux temps : l'exécution directe de /tmp/exportCsv.sql ne donnera pas un formatage correct.

AccueilExtensions Oracle > Création d'un fichier CSV< PrécédentSuivant >