PostgreSQL – CSV

25 Oca by Şahap AŞÇI

PostgreSQL – CSV

PostgreSQL ile CSV çıktı almak

PostgreSQL native olarak CSV dosya biçimini destekler. CSV dosyasından veri alıp bir tabloya ekleyebilir veya herhangi bir sorgunun sonucunu CSV dosyası olarak kaydedebilirsiniz. Kaydetmenin dışında örneğin çıktıyı stdout’a yönlendirip dosya daha diske yazılmadan zipleyebilirsiniz. Bütün bunları COPY komutu ile yapıyoruz. Bir test tablosu oluşturalım, içerisine veri basalım ve sonra da bu tablodan CSV çıktısı üretelim;

Tablo oluşturmak için sorgumuz;

CREATE TABLE csvtest AS 
SELECT * FROM (VALUES (1,'a'), (2,'b'), (3,'c')) AS foo(id, value);

CSV çıktısı için; TO‘dan sonra dosya yolu geliyor.

COPY csvtest TO '/tmp/csvtest.csv' (FORMAT csv);

Dosyamız hazır; cat bash komutu ile içeriğini görebiliriz.

Farklı parametreler vererek çıktımızın biçimini değiştirebiliriz. Aşağıda önce yeni bir kayıt ekliyorum. Daha sonra COPY komutunu kullanarak dosyayı oluşturuyorum. En son da psql’den çıkıp dosyanın içeriğini görüntülüyorum.

Gördüğünüz gibi;

  • Tablodaki kayıtları id alanına göre büyükten küçüğe dizdik. (SELECT * FROM csvtest ORDER BY 1 DESC)
  • Alanlar isimlerinin en başta listelenmesi için HEADER true,
  • noktalı virgül (;) ile ayrılmasını sağlamak için DELIMITER ';'
  • çıktıdaki value alanındaki null olmayan değerlerin çift tırnak ile kaplanmasını sağlamak için QUOTE '"', FORCE_QUOTE (value)
  • son olarak null olan değerler yerine <NULL> yazılmasını sağlamak için de NULL '<NULL>' ayarlarını kullandık.

Referanslar

Loading

Bir yanıt yazın

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