joomla templates Data Warehouse Türkiye

Thu09012011

Last update07:32:32 PM GMT

Back Kategoriler Oracle Dba Csv Dosyalarının Oracle Veritabanına Yüklenmesi
Cuma, 11 Şubat 2011 12:49

Csv Dosyalarının Oracle Veritabanına Yüklenmesi

Yazan&Gönderen  Ogan Ozdogan
Bu Öğeyi Derecelendir
(2 Oylar)

*.csv Dosyalarının Oracle Veritabanına Yüklenmesi (SQLLDR)

Merhaba,

Takip etmek istediğim konu ile biraz alakasız olacak fakat önemli bir konu ve hiç bahsetmediğim için yazacağım.

Belirli durumlarda Oracle veritabanına external verileri yüklememiz gerekebilir. Yani, bu veriler çoğu zaman bir Java veya C# arayüzünden gelmeyebilir. Bu veriler herhangi bir programlama dilinin arayüzünden gelmediği gibi, uzantıları da farklı olabilir. Bu durumda kullanabileceğimiz Oracle aracına SQL-LOADER diyoruz (komut olarak kullanım şekli ise SQLLDR).

Bir excel dosyasındaki bütün verileri .csv (comma seperated value) olarak değiştirebiliriz. Bu değişikliği yaptıktan sonra kısa bir örnek ile devam edelim. Bu arada sqlldr'ın çalışabilmesi için öncelikle bir control dosyası (.ctl) yaratmamız gerekiyor.


CONTROL FILE:

Bir text dosyası ve c'nin altında trial isimli bir folder açalım ve içine;

load data
infile 'c:\trial\veri.csv'
into table deneme
fields terminated by ","
optionally enclosed by '"'
(deneme_sayi,deneme_karakter)

Kaydedelim ve kapatalım. Uzantısını da .ctl olarak değiştirelim ve adını kontrol koyalım. Ardından yüklenmesini dilediğiniz schema'ya bağlanıp yukarıdaki deneme tablosunu yaratalım;

ORACLE TABLE:

C:\> sqlplus
SQL> drop table deneme purge;
SQL> create table deneme
SQL> (
SQL> deneme_sayi number(10), deneme_karakter varchar2(45)
SQL> );
Table created.

Tablomuzu da yarattıktan sonra control dosyasında belirttiğimiz veri.csv'ye bakalım. Önce bir excel dosyası yaratalım ve adını veri.xls koyalım. Ardından örneğimiz için içine şu verileri dolduralım;

EXCEL FILE:

987 Bu bir denemedir
654 Bu da bir denemedir
321 Bu da bir baska denemedir

Kaydedelim ve uzantısını da .csv olarak değiştirelim.

Bir komut satırı açarak şu şekilde deneyebiliriz;

SQLLDR INVOKE:

C:\trial> sqlldr control=kontrol.ctl log=logfile.log

Bu komutun ardından trial folderının altında logfile oluşacak ve buradan durumu gözleyebilirsiniz. Eğer herhangi bir problemle karşılaşacak olursanız da, .bad uzantılı bir dosya göreceksiniz.

Şimdi tablomuzu kontrol edelim ve verilerin yüklenip yüklenmediğini görelim,

C:\> sqlplus
SQL> select * from deneme;

Eğer verileri görebildiyseniz bu aşamada şunu yapabilmiş oldunuz. SQLLDR tool'u ile .csv uzantılı bir dosyanın içindeki verileri sağlıklı bir biçimde Oracle'da daha önceden yarattığınız tabloya atabildiniz.

Unutmadan, unix tabanlı işletim sistemi kullanan arkadaşlarda sqlldr'ı şu şekilde çalıştırabilir;

SQLLDR INVOKE:

% sqlload userid=deneme/password control=kontrol.ctl log=logfile.log

Tekrar görüşmek dileğiyle,

Ogan
Son Düzenleme Pazartesi, 14 Şubat 2011 15:25
Ogan Ozdogan

Ogan Ozdogan

Bilkent Üniversitesi Bilgisayar Teknolojisi ve Bilişim Sistemleri 2006 mezunuyum. İstanbul Bilgi Üniversitesi İşletme Yönetimi (MBA) yüksek lisans mezunuyum.
Oracle Türkiye'de Kıdemli Satış Danışmanı olarak çalışmaktayım. 2007 yılından beri Oracle veritabanı yönetimi ile profesyonel olarak ilgilenmekteyim. Oracle Database 11g Administrator Certified Associate ve Oracle Database 11g Administrator Certified Professional sertifikalarına sahibim. Oracle OTN forumlarında ve günlüğümde teknik bilgilerimi paylaşmaya devam etmekteyim. Oracle veritabanı (9i, 10g, 11g) ve Data Guard, RAC, ASM ve RMAN yönetimi konularında çalışmalarıma devam etmekteyim.

Website: oganozdogan.blogspot.com/ E-posta: Bu e-Posta adresi istek dışı postalardan korunmaktadır, görüntülüyebilmek için JavaScript etkinleştirilmelidir

Login to post comments