ORA-29280:無効なディレクトリ・パスは、Oracleデータベースでファイル処理操作を行う際の一般的なエラーです
エラーの理由と解決策
(1)これは、指定されたディレクトリがutl_file_dirinit.oraパラメータに存在しない場合に発生します
sqlplus / as sysdba
show parameter utl_file_dir
/tmp, /usr/tmp/
SQL> declare
F_LOG utl_file.file_type;
begin
F_LOG := utl_file.fopen('/u500','j', 'w');
end;
/ 2 3 4 5 6
declare
*
ERROR at line 1:
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at line 4
解決策
a。 UTL_FILE_DIRで定義されているディレクトリを変更します
b。ディレクトリを変更できず、同じコードを使用する必要がある場合は、UTL_FILE_DIr
にディレクトリを追加する必要があります。手順は、spfileの最初の変更であり、次にOracleデータベースをリサイクルしてからチェックします
sqlplus / as sysdba
alter system set utl_file_dir='/tmp/','/usr/tmp','/u500' scope =spfile;
shutdown immediate
startup
SQL> declare
F_LOG utl_file.file_type;
begin
F_LOG := utl_file.fopen('/u500','y', 'w');
end;
/
2 3 4 5 6
PL/SQL procedure successfully completed.
c。コードを変更できれば、oracleディレクトリの使用を開始できます。その場合、utl_file_dirを指定する必要はありません
SQL> create directory TESTDIR as '/u500';
SQL> grant read,write on directory TESTDIR to public;
SQL> declare
F_LOG utl_file.file_type;
begin
F_LOG := utl_file.fopen('TESTDIR','y', 'w');
end;
/
PL/SQL procedure successfully completed.
2.間違ったOracleディレクトリ名を指定しました
SQL> declare
F_LOG utl_file.file_type;
begin 2
F_LOG := utl_file.fopen('TESTDIR','y', 'w');
end;
3 4 5 6 /
declare
*
ERROR at line 1:
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at line 4
SQL> select * from dba_directories where DIRECTORY_NAME='TESTDIR';
no rows selected
> 解決策
正しいディレクトリ名を指定するか、新しいディレクトリ名を作成してください
SQL> create directory TESTDIR as '/u500';
SQL> grant read,write on directory TESTDIR to public;
SQL> declare
F_LOG utl_file.file_type;
begin
F_LOG := utl_file.fopen('TESTDIR','y', 'w');
end;
/
2 3 4 5 6
PL/SQL procedure successfully completed.
ORA-29280エラーの詳細な説明を気に入っていただければ幸いです。いいねしてフィードバックを提供してください
関連記事
ORA-29283:無効なファイル操作:ORA-29283:無効なファイル操作を解決する方法については、この投稿を確認してください。チェックする必要のある権限
ORA-29285:ファイル書き込みエラー:ORA-29285:ファイル書き込みエラーは、ファイル処理操作を実行する際の一般的なエラーです。さまざまな理由と解決方法について、この投稿を確認してください
ORA-01652:一時セグメントを拡張できません:ORA-01652エラー:通常、Oracleデータベースの永続テーブルスペースと一時テーブルスペースに空き領域がない場合
ORA-00936式がありません:トラブルシューティングを学ぶORA-00936 Oracle SQLに式がありません。さまざまな解決策、それを回避する方法、このエラーに対するOracleのバグ
ORA-00257:アーカイバエラー。解放されるまで、内部のみを接続します。 :ORA-00257アーカイバエラーのトラブルシューティング方法を学びます。内部のみのエラーを接続します。さまざまな解決策と例が段階的に提供されます。
ORA-00904:ORA-00904の説明と考えられる解決策に関するこの投稿:無効な識別子。トラブルシューティングのヒントも提供されます
FND_FILEオラクルアプリで
https://docs.oracle.com/database/121/ARPLS/u_file.htm