Desember 21, 2008...4:08 pm

Mengakses file MS excel dengan menggunakan oracle heterogenous service

Lompat ke Komentar

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

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

  • ok,, pengakuan..
    km berhasil membuatq googling nyari “oracle heterogeneous service”
    o’on siy aqnya..
    hehehe

    have fun!

  • 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)?

  • 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

  • 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 ^.^

  • wokeh ton suwun … lek iku durung nyoba … :p
    nek nggonmu berhasil bagi2 carane ton :D

  • [...] 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 [...]


Tinggalkan Balasan