ORA-29280: invalid directory
apa maksudnya? error ini menunjukan bahwa function FOPEN yang kita panggil dari package UTL_FILE tidak menemukan adanya directory dengan alamat yang sudah kita definisikan di paramater dari function FOPEN.
Nah disini yang menarik,..... ada beberapa perbedaan isi dari parameter location yang ada di FOPEN tersebut. Seperti kita ketahui bahwa FOPEN memiliki paramater
UTL_FILE.FOPEN (location IN VARCHAR2, filename IN VARCHAR2, open_mode IN VARCHAR2, max_linesize IN BINARY_INTEGER)
Pada oracle versi dibawah 9.2 terlebih dahulu kita harus mendefinisikan parameter location ini di file init.ora yaitu dengan menambahkan baris script berikut ini :
utl_file_dir=[directory path]
(untuk mendefinisikan directory lebih dari satu macam bisa ditambahkan beberapa script diatas sekaligus). Setelah itu di parameter location bisa kita isi directory yang kita definisikan tadi.
Namun ada perbedaan yang cukup signifikan ketika kita menggunakan oracle 9.2 ke atas.
Perbedaannya terletak pada parameter location. Pada Oracle 9.2 ke atas parameter location bukan berisi alamat directory explicit, akan tetapi berisi object directory yang harus kita definisikan dulu dengan menjalankan script di bawah :
create or replace directory
(syaratnya user harus mempunyai privilege create directory, kalau ndak ya pakai aja login system dengan privilege sysdba)
Nah setelah itu baru kita kasih hak akses terhadap object directory tersebut
GRANT READ|WRITE ON DIRECTORYTO PUBLIC| [another user];
Object directory inilah yang nantinya akan kita jadikan sebagai parameter location pada waktu kita memanggil fungsi FOPEN.
Well then.. selamat mencoba :)
No comments:
Post a Comment