Posts tagged external tables
Oracle External Tables
0External 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.