ORA-29283:operasi file yang tidak valid adalah kesalahan yang cukup umum.
Itu terjadi sebagian besar karena dua alasan
(1) Direktori dan file harus memiliki izin yang sesuai pada tingkat OS untuk pengguna yang sama yang memulai database Oracle
Misalnya
The directory does not exists on OS ls /u555/app/oracle No such file or directory SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('/u555/app/oracle','k', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
Ini juga terjadi jika direktori tidak memiliki izin yang sesuai untuk pengguna Oracle dari mana database dimulai.
Jika Anda melakukan perubahan tingkat grup di Unix dan pengguna Oracle terlibat, disarankan untuk memantulkan database dan pendengar juga
Ini juga dapat terjadi jika Anda telah membuat direktori oracle seperti ini
SQL> create directory TESTDIR as '/u555/oracle/tmp'; SQL> grant read,write on directory TESTDIR to public;
Tapi itu tidak ada di OS
SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','k', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
Ini juga dapat terjadi ketika Anda membaca file dan pengguna oracle OS tidak memiliki izin untuk melakukannya
SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('/u555/app/oracle','k', 'r'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
(2) Alasan kedua terbanyak untuk kegagalan ini adalah setelan ORA_NLS10 di database Oracle dan lingkungan listener.
Jika Anda mengaktifkan truss pada proses, file Truss menunjukkan blok file telah dibaca dan blok berikutnya tidak dapat dibaca atau rusak karena pengaturan NLS (ORA_NLS10).
Kesalahan berikut mungkin ditampilkan di rangka
file read error
file write error
internal error
invalid maximum line size
invalid file name
directory access denied
invalid offset specified for seek
file remove operation failed
file rename operation failed
A stream error occurred during compression or uncompression.
A data error occurred during compression or uncompression.
invalid mime header tag
invalid encoded string
The compressed representation is too big
Direkomendasikan untuk memiliki pengaturan yang konsisten di seluruh database dan pendengar.
Baik database dan Listener memiliki set ORA_NLS10 yang sama atau keduanya memiliki nilai yang tidak disetel.
Menyetel ORA_NLS10
ORACLE_SID=TEST ORA_NLS10=< > sqlplus / as sysdba shutdown immediate startup lsnrctl stop TEST lsnrctl start TEST
Membatalkan setelan ORA_NLS10
ORACLE_SID=TEST unset ORA_NLS10 sqlplus / as sysdba shutdown immediate startup lsnrctl stop TEST lsnrctl start TEST
Jika database dan listener sedang mulai menggunakan cluster Oracle, kita dapat melakukan pengaturan ini di srvctl.
Kita dapat memeriksa pengaturan ORA_NLS menggunakan perintah di bawah ini di OS
Temukan proses PMON
ps -ef|grep pmon|grep TEST For Linux: $ strings /proc/<pmon process ID>/environ | grep NLS For Solaris: $ pargs -e <process ID> | grep NLS
Temukan proses pendengar
ps -ef|grep list|grep TEST For Linux: $ strings /proc/<pmon process ID>/environ | grep NLS For Solaris: $ pargs -e <process ID> | grep NLS
Contoh
Kita dapat melakukan hal berikut untuk mereproduksi masalah
ORA_NLS10=< > sqlplus / as sysdba shutdown immediate startup lsnrctl stop TEST lsnrctl start TEST Now unset ORA_NLS10 Now Setup Bequeath connection sqlplus / as sysdba SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','k', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
Saya harap Anda menyukai posting ini tentang Cara mengatasi ORA-29283:operasi file tidak valid dan ini membantu dalam pemecahan masalah Anda
Juga,Baca
Cara mengubah kata sandi aplikasi di R12.2
FNDLOAD Perintah:Perintah/pemuat FNDLOAD adalah utilitas tujuan umum yang memindahkan data terstruktur antara file teks dan database di lingkungan EBS.
ORA-29280:jalur direktori tidak valid
ORA-29285:kesalahan penulisan file