MSSQL Server’dan CSV Formatında Veri Çıkarma

Bu makalede sql server sunucumuzda bulunan bir tablonun CSV formatında txt uzantılı bir klasöre çıkarmayı ele alacağız. Uygulamalı bir şekilde işlemlerimize başlayalım bunun için elimde bulunan AdventureWorks2012 veritabanında belirlemiş olduğumuz tabloyu dışarıya export işlemi yapalım.

AdventureWorks2012 veritabanına sağ tıklayıp Task> Export Data diyiyoruz.

Gelen ekranda kaynağımız sql serverdaki veritabanı olduğu için Data Source kısmında  Microsoft OLE DB Provider SQL Server’ı veya SQL Server Native Client 11.0’ıseçiyoruz. Server Name, bağlantı şeklimiz ve hangi database’den veri alacaksak onu seçiyoruz. Gerekli olan kontrollerden sonra Next deyip bir sonraki aşamaya geçiyorum.

Gelen ekranda dosyalarımızı text uzantısında kaydedeceğimiz için Flat File Destination kısmını seçiyoruz.

Verileri kaydedeceğimiz hedefimizi Flat File Destination seçtikten sonra File Name kısmında verileri kaydedeceğimiz text uzantılı dosyamızı seçiyoruz. Locale kısmından Turkish(Turkey) seçimini yapıyoruz. Text uzantımıza kolun başlıklarının gelmesini istiyorsak en altta bulunan Column names in the first data row kısmını seçiyoruz.

Gelen ekranda herhangi bir değişiklik yapmayıp Next deyip bir sonraki aşamaya geçiyoruz. İkinci seçeneği seçerseniz kendi elinizde bulunan kodu çalıştırabilirsiniz.

Gelen ekranda Source table or view kısmında sql server’dan verileri alacağımız tabloyu seçiyoruz.

Row delemiter kısmında satırların nasıl bir birlerinden ayrılması gerektiğini belirliyoruz. CRLF ifadesi son satırdan alt satıra geçmesini sağlar sadece CR veya LF kullansakta aynı ifadeye denk gelmektedir. Column delemiter kısmında ise kolonlarına nasıl birbirlerinden ayrılması gerektiğini belirtiyoruz. Satır ve sütunları nasıl birbirlerinden ayırmak istiyorsak onu seçebiliriz. Ya da kendimiz elle manuel bir değerde girebiliriz.

Sizde kendi oluşturma düzenize göre seçim yapabilirsiniz. Ben default ayarlarda bıraktırdım. Daha sonra Edit Mappings bölümünde ise  hedefte oluşacak klasördeki başlık isimlerini Destination kısmında değiştirebiliriz veya  tanımlanmayan tür varsa ignore yapabiliriz veya hedef klasörde herhangi bir veri varsa bu verileri silip klasöre boş şekilde verileri yazmayı Delete rows in destination kısmından veya  Append rows to the destination file ile klasördeki verilerin üzerine ekleme işlemi yapabiliriz. Başta txt uzantısı seçmeseydik create destination file kısmı aktif olacaktı.

Bu işlemleri tamamladıktan sonra Next deyip bir sonraki aşamaya geçiyoruz.

Gelen ekranda herhangi bir değişiklik yapmayıp Next diyiyoruz.

Gelen ekranda Finish deyip işlemlerimi tamamlıyorum.

İşlemlerimiz tamamlanmamış oldu. İlgili ekranda hata mesajına odaklanmış olduk.

Messages kısmına tıkladıktan sonra iki kolundaki tür değerinin text uzantısında desteklenmediği için hata mesajı almış oldum.

Yukarıdaki hata ekranını kapatıp geri tuşuna basıp edit mapping ekranında hata almış olduğum iki kolunu ignore yapıyorum.

Geri gelip Edit mappings kısmına geliyorum.

Gelen ekranda iki kolunumu ignore yapıp tekrardan next next finish yaptığımızda verilerimizin başarılı bir şekilde aktarıldığını görmüş oluyoruz.

Tahmini 20 bin satırın başarılı bir şekilde aktarıldığını görmüş oluyoruz.

CSV dosyamızı incelediğimizde kurulum adımda belirttiğimiz gibi sütünların birbirinden virgül(,) ile ayrıldığı ayrıca satırların ise yine belirlediğimiz gibi enter tuşu anlamına gelen {CR}{LF} ifadesi olduğunu görmüş oluyoruz.

Not: Şunu belirtmek gerekirse sql serverdan veri alırken veya import ederken Microsoft OLE DB Provider SQL Server’ı veya SQL Server Native Client seçeneğinide seçebiliriz.

Bu makalede Sql Server veritabanından text uzantısındaki bir dosyaya verileri CSV formatında nasıl aktarıldığını görmüş olduk.

Başka bir makalede görüşmek dileğiyle..

“O gün insanlar amellerinin kendilerine gösterilmesi için bölük bölük kabirlerinden çıkacaklardır. ᅠArtık kim zerre ağırlığınca bir hayır işlerse onun mükafatını görecektir. Kim de zerre ağırlığınca bir kötülük işlerse onun cezasını görecektir.” Zilzâl 6-8

Author: Yunus YÜCEL

Bir yanıt yazın

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