SQL*Plus 12.2.0.1 ile CSV formatında çıktı oluşturulması

21 Eki by Ahmet Duruöz

SQL*Plus 12.2.0.1 ile CSV formatında çıktı oluşturulması

Oracle 12.2.0.1 sürümüyle birlikte SQL*Plus, bir sorgunun sonucunu CSV olarak görüntüleme yeteneğine sahiptir.

Kullanımı aşağıdaki gibidir.

SQL> SET MARK[UP] CSV {ON|OFF} DELIMI[TER] character QUOTE {ON|OFF}

Opsiyonlar :

DELIMI[TER] : Sütun değerlerini ayırmak için kullanılan karakter. Sadece tek karakterlere izin verilirmektedir. Varsayılan değeri “,” (virgül) şeklindedir.
QUOTE : ON olduğunda , metin olan sütun değerleri “” (çift tırnak) işaretleri içinde gösterilir. ON yada OFF değerleri alabilir. Varsayılan değer OFF şeklindedir.

Çift tırnak içinde CSV şeklinde çıktı üretmesi için :

SQL> SET MARKUP CSV ON QUOTE ON
SQL> SELECT * FROM KISI;

"ID","AD","SOYAD"
1,"AHMET","DURUOZ"
2,"ALI","VELI"
3,"VELI","ALI"

Çift tırnak olmadan CSV şeklinde çıktı üretmesi için :

SQL> SET MARKUP CSV ON QUOTE OFF
SQL> SELECT * FROM KISI;

ID,AD,SOYAD
1,AHMET,DURUOZ
2,ALI,VELI
3,VELI,ALI

Ayraç işareti olarak | (pipe) olacak şekilde CSV şeklinde çıktı üretmesi için :

SQL> SET MARKUP CSV ON DELIMITER |
SQL> SELECT * FROM KISI;

ID|AD|SOYAD
1|AHMET|DURUOZ
2|ALI|VELI
3|VELI|ALI

Aşağıdaki gibi komut satırından da -M parametresi kullanılarak , script çalıştırmak suretiyle , csv formatında çıktı oluşturulabilir.

[oracle@orcldb ~]$ sqlplus -S -M "csv on" / as sysdba @/home/oracle/kisi.sql | sed '/^$/d'
"ID","AD","SOYAD"
1,"AHMET","DURUOZ"
2,"ALI","VELI"
3,"VELI","ALI"

sed ‘/^$/d’  komutu ile çıktının başında ve sonunda oluşan boşluğun görüntülenmemesini sağlıyoruz. Aksi takdirde aşağıdaki gibi boşluklu şekilde görüntülenecektir.

[oracle@orcldb ~]$ sqlplus -S -M "csv on" / as sysdba @/home/oracle/kisi.sql

"ID","AD","SOYAD"
1,"AHMET","DURUOZ"
2,"ALI","VELI"
3,"VELI","ALI"

[oracle@orcldb ~]$

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir