17 janvier 2022

Produire une sortie CSV avec SQLPlus Oracle

Ci dessous une opération très simple pour obtenir une sortie SQL de type CSV ... Il suffit de demander à Oracle de le faire pour vous :

set head on
set echo off
set markup csv on delimiter , quote on
select NORME1,NORME2,DATDSN,DATGIP from ZDFS join ZD00 on ZDFS.NUDOSS=ZD00.NUDOSS where CDSTCO='U3N' and CDCODE='000'

"NORME1","NORME2","DATDSN","DATGIP"
"DP21V01 ","DP22V01 ","2022-01-01-00.00.00","2022-01-25-00.00.00"

A noter : 

  • SET MARKUP CSV est disponible a compter de Oracle 12
  • Pour les champs de type CHAR les espaces de fin restent significatifs (par exemple en fin de "DP21V01 "). Pour ne pas les récupérer dans votre extraction, utilisez la fonction rtrim.

plus d'informations avec :
https://docs.oracle.com/.../generating-reports

et
https://docs.oracle.com/.../SET-system-variable