logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
mehmetzekikir  
#1 Gönderildi : 7 Mayıs 2014 Çarşamba 17:40:34(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Text Tabanlı Dosyadan Veri Yükleme

Gerçek hayatta işler teoride olduğu gibi olmaz. Özellikle kurumsal büyük ölçekli firmalarda çok çeşitli veri kaynakları olabilir. Bu veri kaynaklarına örnek olarak, MSSQL den başka veri tabanları (Oracle, MySql, Db2 gibi), web servisler ya da text tabanlı dosyalar(txt,excel gibi). Şimdi bir adet excel veri kaynağı oluşturalım. Dosyamızın adını Data koyduk. İçine de 30 adet veri koyduk. Siz isteseniz daha fazla koyabilirsiniz. (Şekil 1).

UserPostedImage

Eğer dosyamız hazırsa şimdi veri tabanı kısmına geçebiliriz. Kitabımızda Adventur eWorksDW veri tabanını kullandığımız için bizde oluşturacağımız tabloyu AdventureWorksDW de oluşturuyoruz. Excel dosyamızda id, ad, soyad isimli üç adet kolon mevcut. Biz de tablomuz da bu kolonları oluşturalım.

Kod:

USE AdventureWorksDW2012
GO
CREATE TABLE dbo.Data
(
	id int,
	Ad nvarchar(20),
	Soyad nvarchar(20)
)

Command(s) completed successfully.



Tablomuzu oluşturduktan sonra şimdi sıra verilerimizi dosyadan okuyup tablomuzun içine yazmaya geldi. Sql Server Management Studio'yo ya gelip Adventur eWorksDW üzerinde sağ tuşa basıyoruz.

UserPostedImage

Task'a geliyoruz açılan menuden de Import Data ya tıklıyoruz (Şekil 2). Karşımıza Export Import Wizard çıkıyor(Şekil 3).

UserPostedImage

Açılan ekranda ileriye (Next) basıyoruz. Karşımıza çıkan ekranda (Şekil 4) bizden Veri Kaynağı (Datasource) istiyor. Oradan Microsoft Excel'i seçiyoruz. Bizden Excel dosyasının yolunu istiyor. Oluşturduğumuz data isimli Excel dosyamızın yolunu seçiyoruz. Sonra Excel dosyamızın versiyonu seçiyoruz. Çünkü 2007 yolunda xls olan Excel uzantısı 2007 yılında xlsx oldu. Bu sebepten dolayı Excel versiyonumuzu seçiyoruz. Bizim Excel versiyonumuz Microsoft Excel 2007 olduğu için bizde onu seçiyoruz.

UserPostedImage

Şekil 1'de de görüldüğü gibi Data dosyamızdaki ilk satırda Kolon adları yazıyor. Bizde burada First Row Has Column Names i işaretliyoruz. Çünkü bizim ilk satırımız kolon adını barındırıyor. Eğer sizin veri kaynağınızın ilk satırda kolon adları yoksa bu seçeneği işaretlemeyin. Next'e basın karşımıza çıkan ekran bizim veriyi kaydedeceğimiz veri tabanını seçtiğimiz ekrandır.

UserPostedImage

Şekil 5'de gördüğümüz üzere Destinationdan Sql Native Client 11.0 ı seçiyoruz , Server Name'nizi yazıyorsunuz. Database olarak da AdventureWorksDW2012 i seçiyoruz. Sonra Next'e basıyoruz. Karşımıza çıkan ekranda Copy data from one or more tables or views seçeneğini seçiyoruz ve Next'e basıyoruz.
Source olarak Excel dosyamızda Sayfa1$ ı seçmiştik. Burada da Destination olarak da oluşturduğumuz tabloyu seçiyoruz.

UserPostedImage

Şekil 6 da da olduğu gibi Next'e basıyoruz. Şekil 7 açılan ekrandan Next'e basıyoruz.

UserPostedImage

Şekil 8 de açılan ekranda Run Immediately'yi tıklıyoruz. İstersek Sql Server Integration Paketi olarak da kaydede biliriz. Çıkan ekrana Next diyoruz. Sonrada Finish'e tıklıyoruz.

UserPostedImage

Şekil 9 da karşımıza işlemin sonucu çıkıyor. Bize sonuç olarak 30 adet kayıt transfer edildiğini bildiyor.
Kontrol amaçlı tablomuza bir select atalım

Kod:
select * from data


Sekil 10 da çıkan sonuçtan gördüğümüz üzere işlemimiz başarı ile sonuçlandı.

UserPostedImage

UserPostedImage
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...
thanks mehmetzekikir: 1 Kişi mesajın için Teşekkür Etti.
musa_ 7.05.2014(UTC) tarihinde
brhn  
#2 Gönderildi : 7 Mayıs 2014 Çarşamba 18:30:37(UTC)
brhn

Sıralama: Member

Gruplar: Registered
Katılan: 6.05.2014(UTC)
Mesajlar: 12
Bay
Turkey

Thanks: 1 times
1 Mesajına Toplam 1 Kere Teşekkür Edildi.
Eline sağlık tam aradığım şeydi....
musa_  
#3 Gönderildi : 7 Mayıs 2014 Çarşamba 20:39:56(UTC)
musa_

Sıralama: Newbie

Gruplar: Registered
Katılan: 6.05.2014(UTC)
Mesajlar: 8
Turkey

10 Kere Teşekkür Etti.
1 Mesajına Toplam 1 Kere Teşekkür Edildi.
eline sağlık hocam. bende dün buna benzer bişeyle uğraştım.ama ben .txt dosyasından yükledim. ama şöle bişey oldu: ben txt dosyasında ki kelimeleri virgülle ayırdım yükledikten sonra txt dosyasında ki ilk kelimeyi tablonun kolonlarına isim olarak ayarlıyordu. orada biraz sıkıntı yaşadım. onu nasıl halledebiliriz acaba ? yani
|colon1| |colon2| ben import işlemini yaptıktan sonra bu kolonların isimleri txt de ki bir kelime oluyor. umarım anlatabildim :)
mehmetzekikir  
#4 Gönderildi : 8 Mayıs 2014 Perşembe 08:49:37(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Originally Posted by: musa_ Go to Quoted Post
eline sağlık hocam. bende dün buna benzer bişeyle uğraştım.ama ben .txt dosyasından yükledim. ama şöle bişey oldu: ben txt dosyasında ki kelimeleri virgülle ayırdım yükledikten sonra txt dosyasında ki ilk kelimeyi tablonun kolonlarına isim olarak ayarlıyordu. orada biraz sıkıntı yaşadım. onu nasıl halledebiliriz acaba ? yani
|colon1| |colon2| ben import işlemini yaptıktan sonra bu kolonların isimleri txt de ki bir kelime oluyor. umarım anlatabildim :)


musa orada delimitter olarak (,) seçmelisin ozaman sorun bitecektir,
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...
thanks mehmetzekikir: 1 Kişi mesajın için Teşekkür Etti.
musa_ 8.05.2014(UTC) tarihinde
musa_  
#5 Gönderildi : 8 Mayıs 2014 Perşembe 13:37:19(UTC)
musa_

Sıralama: Newbie

Gruplar: Registered
Katılan: 6.05.2014(UTC)
Mesajlar: 8
Turkey

10 Kere Teşekkür Etti.
1 Mesajına Toplam 1 Kere Teşekkür Edildi.
ben onu yanlış hatırlamıyorsam (CF)(CL) gibi bi seçenek olarak ayarlamıştım. Galiba ondan oldu o zaman. bi daha denicem. Teşekkür ederim.
firatunluefe  
#6 Gönderildi : 20 Eylül 2014 Cumartesi 23:35:00(UTC)
firatunluefe

Sıralama: Newbie

Gruplar: Registered
Katılan: 20.09.2014(UTC)
Mesajlar: 6
Turkey
Konum: İstanbul

2 Kere Teşekkür Etti.
Mehmet hocam merhaba,

SQL le yeni başladım. sizin videolarınızı takip ederek baya öğrendim. Emeğiniz için teşekkür ederim.

Benim problemim elimde aşağıdaki gibi bir txt dosyası var.

Fırat | İstanbul|
Ahmet | Ankara|
Doruk | İzmir|

Ben bu verileri SQL le aktarırken başına ID no ile aktarmasını istiyorum. Aşağıdaki komut ile yapıyorum tabloyu oluştururken ID kolonu ekleniyor Ama BULK komutu çalışırken kayıtları almıyor. ID kolonunda hata veriyor. Bu ID yi nasıl eklenmesini sağlarız.

Teşekkür ederim.

create table kisi
(
ID int identity(1,1) primary key,
AD varchar(50),
IL varchar(50)
)

BULK INSERT kisi FROM 'd:\kisi.txt' WITH (FIELDTERMINATOR='|', ROWTERMINATOR='0x0A')
mehmetzekikir  
#7 Gönderildi : 21 Eylül 2014 Pazar 17:36:16(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Originally Posted by: firatunluefe Go to Quoted Post
Mehmet hocam merhaba,

SQL le yeni başladım. sizin videolarınızı takip ederek baya öğrendim. Emeğiniz için teşekkür ederim.

Benim problemim elimde aşağıdaki gibi bir txt dosyası var.

Fırat | İstanbul|
Ahmet | Ankara|
Doruk | İzmir|

Ben bu verileri SQL le aktarırken başına ID no ile aktarmasını istiyorum. Aşağıdaki komut ile yapıyorum tabloyu oluştururken ID kolonu ekleniyor Ama BULK komutu çalışırken kayıtları almıyor. ID kolonunda hata veriyor. Bu ID yi nasıl eklenmesini sağlarız.

Teşekkür ederim.

create table kisi
(
ID int identity(1,1) primary key,
AD varchar(50),
IL varchar(50)
)

BULK INSERT kisi FROM 'd:\kisi.txt' WITH (FIELDTERMINATOR='|', ROWTERMINATOR='0x0A')



Merhabalar dostum,

ben de buna çok uğraşmıştım ama ne yazıkki bu şekilde yapamadım, çünkü identity sıkıntı cıkarıyordu, bende bu sorunu şu şekilde çözdüm,

1- Temp tablo olusturdum, burada identity yok
2- Bulk inserti buraya yaptım ve koda codepage 1254 i ekledim yoksa türkçe karakterler çalışmaz,
3- Temp'i bizim tablomuza ekliyoruz,
4- sonrada temp i siliyoruz

Kod:

CREATE TABLE #temp
(
AD VARCHAR(50),
IL VARCHAR(50)
)

BULK INSERT #temp FROM 'c:\mehmet\kisi.txt' WITH (FIELDTERMINATOR='|', ROWTERMINATOR='0x0A',CODEPAGE = '1254')

INSERT INTO Kisi
SELECT * FROM #temp

SELECT * FROM Kisi

drop table #temp


Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...
thanks mehmetzekikir: 1 Kişi mesajın için Teşekkür Etti.
firatunluefe 21.09.2014(UTC) tarihinde
firatunluefe  
#8 Gönderildi : 21 Eylül 2014 Pazar 19:34:54(UTC)
firatunluefe

Sıralama: Newbie

Gruplar: Registered
Katılan: 20.09.2014(UTC)
Mesajlar: 6
Turkey
Konum: İstanbul

2 Kere Teşekkür Etti.
Teşekkür ederim hocam elinize sağlık.

Süper Oldu :)
mehmetzekikir  
#9 Gönderildi : 21 Eylül 2014 Pazar 19:58:55(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Originally Posted by: firatunluefe Go to Quoted Post
Teşekkür ederim hocam elinize sağlık.

Süper Oldu :)


rica ederim :)
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...


Bu konudaki kullanıcılar
Guest (2)
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.