Du kan också använda följande, även om det introducerar mellanslag mellan fält.
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;
Utdata blir så här:
TABLE_PRIVILEGE_MAP ,SYSTEM
SYSTEM_PRIVILEGE_MAP ,SYSTEM
STMT_AUDIT_OPTION_MAP ,SYSTEM
DUAL ,SYSTEM
...
Detta skulle vara mycket mindre tråkigt än att skriva ut alla fält och sammanfoga dem med kommatecken. Du kan följa upp med ett enkelt sed-skript för att ta bort blanksteg som visas före ett kommatecken, om du vill.
Något liknande det här kan fungera...(mina sed-kunskaper är väldigt rostiga, så det här kommer förmodligen att behöva arbete)
sed 's/\s+,/,/' myfile.csv