También podría usar lo siguiente, aunque introduce espacios entre campos.
set colsep , -- separate columns with a comma
set pagesize 0 -- No header rows
set trimspool on -- remove trailing blanks
set headsep off -- this may or may not be useful...depends on your headings.
set linesize X -- X should be the sum of the column widths
set numw X -- X should be the length you want for numbers (avoid scientific notation on IDs)
spool myfile.csv
select table_name, tablespace_name
from all_tables
where owner = 'SYS'
and tablespace_name is not null;
La salida será como:
TABLE_PRIVILEGE_MAP ,SYSTEM
SYSTEM_PRIVILEGE_MAP ,SYSTEM
STMT_AUDIT_OPTION_MAP ,SYSTEM
DUAL ,SYSTEM
...
Esto sería mucho menos tedioso que escribir todos los campos y concatenarlos con las comas. Si lo desea, puede continuar con un script sed simple para eliminar los espacios en blanco que aparecen antes de una coma.
Algo como esto podría funcionar... (mis habilidades con sed están muy oxidadas, por lo que es probable que necesite mejorar)
sed 's/\s+,/,/' myfile.csv