Bulk Insert Kullanarak Metin Dosyadaki Verileri SQL Servera Aktarmak

Bulk Insert Kullanarak Metin Dosyadaki Verileri SQL Servera Aktarmak

Bir Metin dosyasinda bulunan verileri SQL server’a aktarmanin en kolay yollarindan biri bulk insert’tür. Bulk insert ile metin dosyayi SQL e aktarmak için dosya formatini bilmeniz gerekmektedir. Örnegin her kolon hangi karakterle ayriliyor satir sonlari nasil belirlenmis vb.

.

Bulk insert komutunun basit kullanimi asagidaki gibidir.

BULK INSERT TabloAdi FROM ‘dosyaYolu’ WITH (FIELDTERMINATOR = ‘,’)

 

FIELDTERMINATOR ile metin dosyasinda bulunan kayitlarda her kolonun hangi karakterle birbirinden ayrildigini belirliyoruz. Asagida örnek olarak verilmis basit bir metin dosyayi SQL e aktaralim.

Metin Dosya Içirigi : (ornek.txt)

1,Mehmet Sabri KUNT,Yozgat

2,Metin TOSUN,Denizli

3,Ali RÜZGAR,Bursa

 

Yukaridaki metin dosyasini SQL e aktarmak için asagidaki gibi basit bir t-sql kodu yazmamiz yeterli.

create table kisi

(

      id int,

      adsoyad varchar(20),

      sehir varchar(10)

)

 

BULK INSERT kisi FROM ‘c:\ornek.txt’ WITH (FIELDTERMINATOR = ‘,’)

 .

Yukarida görüldügü gibi kisi adinda bir tablo olusturduk ve dosya içerigini bu tabloya aktardik. Kisi tablosundaki kayitlara bakacak olursaniz Ali RÜZGAR isminin Ali R-ZGAR seklinde atildigini görürsünüz.  Bunun sebebi Ü harfinin Türkçe olmasi. Bu sorunu çözmek için BULK INSERT komutunun CODEPAGE özelligini set etmemiz gerekiyor. Yukaridaki sorguyu asagidaki hale getirdiginizde ‘Ü’ harfinin dogru bir sekilde kaydedildigini görürsünüz.

create table kisi

(

      id int,

      adsoyad varchar(20),

      sehir varchar(10)

)

 

BULK INSERT kisi FROM ‘c:\ornek.txt’ WITH (FIELDTERMINATOR = ‘,’,CODEPAGE = ‘1254’)

 .

BULK INSERT komutunu çalistirdiginizda ‘You do not have permission to use the bulk load statement.’ hatasi almaniz veritabaninda BULK INSERT yetkinizin olmadigi anlamina gelir. BULK INSERT komutunu çalistirmak için veritabaninda sysadmin veya bulkadmin rollerine sahip olmaniz gerekmektedir.

 

7 thoughts on “Bulk Insert Kullanarak Metin Dosyadaki Verileri SQL Servera Aktarmak

  1. Benim de temel sorunum ad soyad musteri no gibi 3 tane txt de veri var ama ben musteri no ad soyad gibi db ye yazmak istiyorum (diyelim) bu durumda veriyi nasil sekillendirirm yani böldügü verilerin hangi parçanin hangi kolonun oldugnu nasil belirlerimd erken aklima 2 çözüm geldi

    1-View kullanmak

    2-http://msdn.microsoft.com/en-us/library/ms188365.aspx adresinde xml ile formatlamis.

    view kullanmak ne kadar çözer bilmem ama yukardaki linke baksaniz güzel olur. bulk insert baya ii oldu basit bi komut ama bilmeyince txt i satir satir okuuyp atan kendi saçma programnizi yazmaniz gerekeibliyor.

  2. Merhabalar,

    Paylasim çok yararli fakat benim suan ihtiyacim olan ve bir türlü bulamadigim bir sorun var.

    Veri aktarimi yaparken olonlari kendimiz belirleme islemini nasil yapabiliriz. Mesela ben 2. kolonu sqlde 7. kolona atmak istiyorum ve tüm kolonlarda islem böyle yürüyecek. Bunu nasil yapabilirim. Acil yardim edebilirseniz sevinirim. Mailinizi beliyorum.

  3. yok ben onu anladim 🙂 düzeni demek istedigini anladimda düzenli derken ne demek istedigini anlamadim.

    düzenliyi açmasi lazim biraz.

     

    ama anlamadim yerine anladim kullanmisim evet 🙂

  4.  ‘Düzenli‘ yerine yanlislikla ‘süzenli‘ demis arkadas. 

    Tipki senin ‘anlamadim’ yerine ‘anladim’ dedigin gibi 🙂

     

     

     

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir