Karena ditugaskan untuk memindah data dari MS excel ke Oracle, maka akhirnya saya kembali lagi membuka-buka file zaman kuliah dulu, tepatnya kuliah OLAP (Oline Analitical Processing) dan banyak sedikit bertanya pada mbah google, akhirnya saya menemukan cara yang lebih exclussive dari pada sekedar kopas isi file excel ke editor seperti Toad. Caranya adalah dengan memanfaatkan heterogenous service oracle, dan kemudian membuat database link ke file excel dengan menggunakan odbc.
Berikut adalah langkah-langkah nya :
Membuat ODBC source
Caranya dengan masuk ke Start -> Programs -> Administrative Tools -> Data Sources (ODBC), pada tab System DSN pilih tombol Add kemudian pilih Excel Driver kemudian tekan tombol Finish. Setelah itu isilah dengan nama odbc yang diinginkan pada field Data Source Name, misal excel. Pilih file Excel yang digunakan dengan menekan tombol Select Workbook.

odbc
Mendaftarkan Service ODBC “excel” Pada Heterogenous Service
copy file inithsodbc.ora yang berada di direktori ORACLE_HOME\hs\admin, kemudian rename degan format init<SID>.ora, misalkan SID-nya adalah EXCEL, maka nama file akan menjadi initEXCEL.ora. Edit isi file initEXCEL.ora menjadi :
HS_FDS_CONNECT_INFO = excel HS_FDS_TRACE_LEVEL = 0
ini akan menciptakan link antara SID EXCEL dengam ODBC excel.
MembuatListener Dan Tnsnames Untuk SID EXCEL
Edit listener.ora yang ada di direktori ORACLE_HOME\NETWORK\admin, tambahkan line sbb:
(SID_DESC= (SID_NAME=EXCEL) (ORACLE_HOME=C:\Oracle\Ora9i) (PROGRAM=hsodbc) )
Edit tnsnames.ora yang ada di direktori yang sama dengan file listener.ora, tambahkan baris :
EXCEL = # you may need to add a domain name suffix - ask your DBA (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=TCP) # edit to point to your LISTENER (HOST=localhost) # edit to point to your LISTENER (PORT=1521) # edit to point to your LISTENER ) ) (CONNECT_DATA=(SID=EXCEL)) (HS=OK) )</pre>
dalam mengedit tnsnamse.ora perhatikan juga file sqlnet.ora, yaitu tentang masalah domain dari database. misal dalam file sqlnet.ora terdapat baris :
NAMES.DEFAULT_DOMAIN = world
maka baris yang ditambahkan dalam file tnsnamse.ora adalah :
EXCEL.WORLD = # you may need to add a domain name suffix - ask your DBA (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=TCP) # edit to point to your LISTENER (HOST=localhost) # edit to point to your LISTENER (PORT=1521) # edit to point to your LISTENER ) ) (CONNECT_DATA=(SID=EXCEL)) (HS=OK) )
kemudian restart listener oracle dengan perintah :
lsnrctl stop lsnrctl start
setelah itu cek tns dengan menggunakan tnsping :
tnsping BOX.WORLD
Jika terdapat error maka kemungkinan ada yang salah pada konfigurasi file tnsnames.ora.
Membuat Database Link
pada sqlplus ketikkan perintah :
CREATE DATABASE LINK custard CONNECT TO "nama_comp\user" IDENTIFIED BY user_passwd USING 'EXCEL.WORLD';
Untuk mangecek apakah database link sudah bekerja dengan semestinya, cek query tabel ke database link dengan perintah :
SELECT table_name FROM all_tables@custard;
jika tidak ada error maka hasilnya akan mirip-mirip seperti ini :
TABLE_NAME
——————————
Sheet1$
Sheet2$
Sheet3$




& Komentar
Desember 26, 2008 pukul 12:00 pm
ok,, pengakuan..
km berhasil membuatq googling nyari “oracle heterogeneous service”
o’on siy aqnya..
hehehe
have fun!
Januari 7, 2009 pukul 2:19 pm
lek eksport excel ng dbase y opo val? banyak cara sih,, tp menurutmu/setaumu enak’e gwe/y opo? misal dbase mySQL.
do you has/have some recommended tool(s)?
Januari 7, 2009 pukul 10:58 pm
nek mysql yang pernah tak coba lewat script load file nya mysql … tapi disave dulu file excel nya ke format csv … kalo tools mestinya ada, tapi rata2 pake csv
April 21, 2009 pukul 5:40 pm
Sipp, juelas Val
Cuma pas nggawe database link perlu diperhatikan
CREATE DATABASE LINK custard
USING ‘EXCEL.WORLD’;
Asline wis iso, cuma lek sing koneksi ono user & passwd ne koyo mysql
CONNECT TO “nama_comp\user”
IDENTIFIED BY “user_passwd”
Kudu dilebokke sisan & tanda petik sepertinya juga wajib dicantumkan. Lek CONNECT TO dst.. gak dimasukkan yang bisa ngakses cuma user sys dba aja. Soale aku biasane gak manut conto, nggawe dewe ra dadi dadi ^.^
April 22, 2009 pukul 11:59 pm
wokeh ton suwun … lek iku durung nyoba … :p
nek nggonmu berhasil bagi2 carane ton
April 23, 2009 pukul 1:46 am
[...] separated value). Menggunakan oracle_loader ini jauh lebih mudah jika dibandingkan dengan membuat database link dengan heterogenous service yang saya tulis sebelumnya. Cara pembuatannya sangat mudah yaitu dengan membuat direktory di [...]