Můžete také použít následující, i když to zavádí mezery mezi poli.
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;
Výstup bude vypadat takto:
TABLE_PRIVILEGE_MAP ,SYSTEM
SYSTEM_PRIVILEGE_MAP ,SYSTEM
STMT_AUDIT_OPTION_MAP ,SYSTEM
DUAL ,SYSTEM
...
Bylo by to mnohem méně únavné než vypisovat všechna pole a spojovat je čárkami. Pokud byste chtěli, mohli byste navázat jednoduchým skriptem sed k odstranění mezer, které se objevují před čárkou.
Něco takového by mohlo fungovat... (moje sedové dovednosti jsou velmi zarezlé, takže to bude pravděpodobně vyžadovat práci)
sed 's/\s+,/,/' myfile.csv