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 ~]$