Menggunakan External Table

External table adalah tabel yang datanya ada di luar database, biasanya berupa text file. External table sering digunakan untuk :

  1. membaca file dari database Oracle.
  2. Me-load (import) data dari text file ke database. Sebagai alternatif lain dari SQL*Loader.

Misalkan saya punya file penjualan. dat di direktori /data1/oracle/Users/rohmad/external.

$ cd /data1/oracle/Users/rohmad/external
$ more penjualan.dat
3286;23-DEC-08;SEMARANG
3287;24-DEC-08;SURABAYA
3288;25-DEC-08;MAKASAR
3289;26-DEC-08;MEDAN
3290;26-DEC-08;MAGELANG TENGAH

Berikut ini langkah-langkah untuk membuat external table berdasarkan file tersebut.

Persiapan
Buat directory di database yang mengarah ke directory file tersebut.

SQL> conn / as sysdba
SQL> CREATE OR REPLACE DIRECTORY external_dir 
AS '/data1/oracle/Users/rohmad/external'; 

Beri privilege ke user agar bisa membaca dan menulis ke directory tersebut.

SQL> GRANT READ ON DIRECTORY external_dir TO test; 
SQL> GRANT WRITE ON DIRECTORY external_dir TO test; 

Continue reading Menggunakan External Table

Menggunakan SQL*Loader

SQL Loader adalah tool Oracle untuk me-load data dari flat (text) file ke dalam tabel di database Oracle. Program (executable) SQL Loader adalah sqlldr, lokasi ada di $ORACLE_HOME/bin.

SQL Loader sering digunakan untuk mengatasi kendala jaringan. Misalkan perusahaan punya kantor cabang yang tidak tersambung online dengan pusat; data transaksi biasanya dikirim ke pusat dalam bentuk text file; di pusat, data tersebut kemudian di-load ke database pakai SQL Loader.

SQL Loader juga sering digunakan untuk me-load data dari system yang berbeda. Misalkan transaksi di-handle oleh database non Oracle, sementara datawarehouse menggunakan Oracle. Nah, data transaksi dari non Oracle ini kemudian di-export ke dalam text file, dan kemudian di-import ke Oracle pakai SQL*Loader.

Misalkan saya punya file penjualan.dat yang berisi:

3286;23-DEC-08;SEMARANG
3287;24-DEC-08;SURABAYA
3288;25-DEC-08;MAKASAR
3289;26-DEC-08;MEDAN
3290;26-DEC-08;MAGELANG TENGAH

File penjualan.dat tersebut akan saya load ke tabel penjualan:

CREATE TABLE penjualan
    ( no_invoice 	NUMBER,
      tgl_jual    	DATE,
      area 		varchar2(10));

Continue reading Menggunakan SQL*Loader