External Table pada oracle memungkinkan kita melakukan query pada flat file untuk oracle versi 9i dan melakukan manipulasi pada oracle 10g.
Oracle external table menggabungkan fungsionalitas SQL Loader dan data pump, sebagai contoh kita mempunyai data pelanggan dalam bentuk csv dan kita ingin melakukan query pada data tersebut kita bisa dengan mudah melakukannya menggunakan external tables.

Membuat External Tables

File yang akan diakses harus bisa dibaca oleh Oracle process maka langkah pertama adalah membuat directory dan memberikan akses pada direktori tersebut.

$cd /opt/data
$mkdir customer
$ls -l /opt/data
drwx------  2 oracle oinstall 4096 Mar  1 17:05 customer

simpan file customer.csv kedalam direktori /opt/data/customer

contoh content dari data customer.csv adalah sebagai berikut

1,massri,massri@nailuvar.com,bandung
2,nindri,nindri@nailuvar.com,bojongsoang

Langkah berikutnya adalah membuat direktori tersebut di oracle dengan memberikan hak read dan write

SQL> connect / as sysdba
Enter password:
Connected.
SQL> create or replace directory cust_data_dir
  2  as '/opt/data/customer';

Directory created.

SQL> grant read,write on directory cust_data_dir to hr;

Grant succeeded.

langkah terakhir adalah membuat external table untuk data diatas

SQL> connect hr
Enter password:
Connected.
SQL> create table customer_ext
  2      ( empl_id varchar2(3),
  3        name varchar2(50),
  4        email varchar2(100),
  5        city varchar2(40)
  6      )
  7      organization external
  8      ( default directory cust_data_dir
  9        access parameters
 10        ( records delimited by newline
 11          fields terminated by ','
 12        )
 13        location ('customer.csv')
 14    );

Table created.

Nah sekarang kita sudah mempunya table dengan nama customer_ext dan kita bisa melakukan operasi SQL select untuk menambilkan data tersebut seperti normal table.

SQL> select * from customer_ext;

EMP NAME       EMAIL                         CITY
--- ---------- ----------------------- ---------
   1 massri       massri@nailuvar.com      bandung
   2 nindri        nindri@nailuvar.com       bojongsoang

2 rows selected.