SORU
13 Mart 2009, Cuma


Nasıl biçimlendirilmiş CSV dosyası kullanarak bir SQLPLUS biriktirme mı?

CSV çıkış biçimi için bazı sorgular ayıklamak istiyorum. Ne yazık ki, herhangi bir fantezi SQL istemci ya da bunu yapmak için herhangi bir dil kullanamam. SQLPLUS kullanmalıyım.

Bunu nasıl yapabilirim?

CEVAP
17 Mart 2009, Salı


Ayrıca alanları arasında boşluk takdim ediyor, ancak aşağıdaki gibi kullanabilirsiniz.

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;

Çıktı şu şekilde olacak:

    TABLE_PRIVILEGE_MAP           ,SYSTEM                        
    SYSTEM_PRIVILEGE_MAP          ,SYSTEM                        
    STMT_AUDIT_OPTION_MAP         ,SYSTEM                        
    DUAL                          ,SYSTEM 
...

Bu alanların tümünün yazarak ve virgül ile bitiştirmek çok daha az sıkıcı olurdu. Eğer istersen önce virgül görünen boşluk kaldırmak için basit bir komut sed ile takip edebilirsin.

Böyle bir şey işe yarayabilir...(sed yeteneklerimi bu muhtemelen işe ihtiyacım var, çok paslı,)

sed 's/\s ,/,/' myfile.csv 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • GenTechPC

    GenTechPC

    1 Temmuz 2007