Bu makalemizde bir text dosyasının içerisinden bir tabloya veriler nasıl aktarılır bunu anlatacağız.Bu işlem içinse SQLLOADER aracını kullanacağız
Öncelikle ihtiyacımız olan şey içerisinde veri bulunan bir dosya.Örneğin CVS formatına çevrilmiş bir Excel dosyası gibi. Bu dosyadaki veriler ‘;’ gibi bir işarele birbirlerinden ayrıldığından SQLLOADER için yaratacağımız kontrol dosyası için uygundur. Bu kontrol dosyasında veritabanındaki tablo bilgileri,ayraç olarak kullanılan ifade, sabit uzunluk değerleri gibi ayarlama bilgileri bulunur. Böylelikle veri istenildiği gibi veritabanına doğru bir şekilde kaydedile bilir.
Elimizde var olan bir tabloya veya yeni yaratacağımız bir tabloya bu text dosyasındaki veriler gönderilebilir. Böyle bir tablonun var olmadığını varsayacak olursak ilk işimiz bu tabloyu yaratmak olacaktır.
Örneğin;
Create table MUSTERI_DATA ( musteri_id number
,musteri_adi varchar2(50)
,musteri_soyadi varchar2(50)
,musteri_tel varchar2(20)
,musteri_email varchar2(80)
);
Sonrasında ise yapılacak iş veri ile beraber bulunacak bir kontrol dosyası yaratmaktır.İstenilirse bu kontrol dosyası veri içermeyip verinin bulunduğu text dosyasını gösterebilir.Bu dosyayı yaratırken ‘ctl ’ uzantısı ile yaratalım ve içerisine şunları ekleyelim. Dosya adını da contol.ctl yaratalım.
LOAD DATA
INFILE *
INTO TABLE MUSTERI_DATA
FIELDS TERMINATED BY ‘,’
(
musteri_id
,musteri_adi
,musteri_soyadi
,musteri_tel
,musteri_email
)
BEGINDATA
1,EREN,GULERYUZ,212-566-555-555,ereng@bilginc.com
2,MUSTAFA,KALAYCI,212-666-555-444,mustafak@bilginc.com
3,KEMAL FIRAT,İPEK,212-888-888-888,firati@bilginc.com
Geriye son aşama olan çalıştırmak kaldı bu işlemi de kullanıcımızın HR kullanıcısı olduğunu varsayarsak şu şekilde yapabiliriz(CMD control dosyasın bulunduğu dizin olursa);
CMD>sqlldr hr/hr control=control.ctl;
Böylelikle dataları tablomuz kaydetmiş oluyoruz.
MUSTERI_ID MUSTERI_ADI MUSTERI_SOYADI MUSTERI_TEL MUSTERI_EMAIL
——————————————————————————————————————————-
1 EREN GULERYUZ 212-566-555-555 ereng@bilginc.com
2 MUSTAFA KALAYCI 212-666-555-444 mustafak@bilginc.com
3 KEMAL FIRAT İPEK 212-888-888-888 firati@bilginc.com