Cuma , 8 Mayıs 2015
Anasayfa / MAKALELER / Veri Tabanı / CSV Dosyalarının Oracle Veritabanına Yüklenmesi (SQLLDR)

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

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.

Latest posts by Ogan Ozdogan (see all)

Powered by Starbox

Hakkında 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.

Bir yorum

  1. Teşekkürler Ogan, CSV nin ne olduğunu anlamak adına çok faydalı bi paylaşım olmuş ;)

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*


Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>