sql >> Databáze >  >> RDS >> Oracle

Jak mohu zařadit soubor ve formátu CSV pomocí SQLPLUS?

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 


  1. SQL Server:AKTUALIZUJTE tabulku pomocí příkazu ORDER BY

  2. Příklad příkazu Oracle FOR LOOP SELECT

  3. Omezení CHECK v MySQL nefunguje

  4. Analyzujte XML na SQL Server