sql >> Databasteknik >  >> RDS >> Oracle

Hur spolar jag till en CSV-formaterad fil med SQLPLUS?

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 


  1. Databasmodell för en trafikskolas bokningssystem. Del 2

  2. Hur man använder GO Statement i SQL Server för att infoga poster i Identity Column - SQL Server / T-SQL självstudie del 42

  3. CONVERT_TZ – Hur man ändrar MySQL-tidszon i Query

  4. PostgreSQL Skapa databas