Sie könnten auch Folgendes verwenden, obwohl es Leerzeichen zwischen Feldern einfügt.
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;
Die Ausgabe sieht folgendermaßen aus:
TABLE_PRIVILEGE_MAP ,SYSTEM
SYSTEM_PRIVILEGE_MAP ,SYSTEM
STMT_AUDIT_OPTION_MAP ,SYSTEM
DUAL ,SYSTEM
...
Das wäre viel weniger mühsam, als alle Felder abzutippen und mit den Kommas zu verketten. Sie könnten mit einem einfachen sed-Skript weitermachen, um Leerzeichen zu entfernen, die vor einem Komma erscheinen, wenn Sie möchten.
So etwas könnte funktionieren ... (meine sed-Kenntnisse sind sehr eingerostet, also wird dies wahrscheinlich Arbeit erfordern)
sed 's/\s+,/,/' myfile.csv