Thursday, February 21, 2008

seleksi field pada SQL Loader Oracle

wah bingung nih, harus membandingkan data 400 ribu kedalam data yang file size nya 10 giga, huaaaaaaaaaaaaaaaa.... ya sud di intip dulu isi file nya, eh ternyata file tersebut text yang mempunyai delimiter "(spasi)", sekarang masalahnya adalah saya tidak mau me-load file tersebut ke dalam database semuanya, karena gak penting gitu lho data2 yang lain :D... hmm setelah hasil intipan didapat ternyata data yang saya butuhkan ada di urutan ke 1 dan 7 dari file tersebut. Contoh :

"MI","Agate Falls","falls","Ontonagon","26","131","462851N","0890527W",
"46.48083","-89.09083","","","","","","","Trout Creek"

"MI","Agate Harbor","bay","Keweenaw","26","083","472815N","0880329W",
"47.47083","-88.05806","","","","","","","Delaware"

"MI","Agate Point","cape","Keweenaw","26","083","472820N","0880241W",
"47.47222","-88.04472","","","","","","","Delaware"

Note: contoh diatas pada file aslinya hanya ada 3 baris

Yang saya butuhkan dari data di atas untuk di insert ke dalam table saya adalah field pertama dan ke-7 lalu setelah saya buat table dalam database dengan field:
nama table: lokasi

kode varchar(2);
letak varchar(10);

Kemudian saya buat control file nya, yang isinya:

LOAD DATA
APPEND INTO TABLE test_table
(
kode CHAR TERMINATED BY "," ENCLOSED BY '"',
k1 FILLER TERMINATED BY "," ENCLOSED BY '"',
k2 FILLER TERMINATED BY "," ENCLOSED BY '"',
k3 FILLER TERMINATED BY "," ENCLOSED BY '"',
k4 FILLER TERMINATED BY "," ENCLOSED BY '"',
k5 FILLER TERMINATED BY "," ENCLOSED BY '"',
letak CHAR TERMINATED BY "," ENCLOSED BY '"'
)

control file tersebut saya save menjadi: control.ctl

nama file yang akan saya load adalah file_master.dat

lalu saya jalankan command berikut ini pada command prompt:

sqlldr user/password@databasename control=control.ctl data=file_master.dat

voila, saya mendapatkan data yang saya inginkan dalam table saya, tinggal saya bandingkan deh


keterangan FILLER adalah keterangan agar field tersebut tidak saya load ke dalam database, sedangkan ENCLOSED BY '"' adalah optional jika field2 yang ada dalam file yang akan anda load tidak di enclose/dibungkus oleh tanda ' " '.

sampai jumpa

1 comment:

Pinkina said...

Good...Good....
nice posting nyet :D