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