FREMOVEでエラーが発生しています。「ORA-29280:無効なディレクトリ・パス」UTL_FILE、UTL_FILE_DIR、およびDIRECTORYでは、UTL_FILE.FREMOVEにどのように影響しますか?
UTL_FILE_DIRにパスを追加してデータベースを再起動すると問題なく動作します。
これは、READとWRITEの両方が付与されたOracleディレクトリとしてのディレクトリの所有に関係なく行われます。
FREMOVEでエラーが発生しています。「ORA-29280:無効なディレクトリ・パス」UTL_FILE、UTL_FILE_DIR、およびDIRECTORYでは、UTL_FILE.FREMOVEにどのように影響しますか?
UTL_FILE_DIRにパスを追加してデータベースを再起動すると問題なく動作します。
これは、READとWRITEの両方が付与されたOracleディレクトリとしてのディレクトリの所有に関係なく行われます。
UTL_FILEを使用する場合は次の2つのオプションのいずれかを持っている:
オプション1:UTL_FILE_DIRあなたはパラメータで使用するディレクトリを持っている必要があります。それがなければ、うまくいかないでしょう。欠点は、いつでもこのパラメータを変更または追加する必要があることです。データベースをバウンスする必要があります。この方法では、UTL_FILE.FREMOVEの最初のパラメータに実際のOSディレクトリが渡されます。
オプション2:代わりにoracle Directoryオブジェクトを使用します。 - OracleはUTL_FILE_DIRだった廃止予定の理由
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_file.htm
http://www.sc.ehu.es/siwebso/KZCC/Oracle_10g_Documentacion/server.101/b10755/initparams223.htm
FREMOVEパラメータの配置に使用している構文は何ですか?ディレクトリの場合、大文字と小文字の区別があるOracle Directoryオブジェクトの名前を渡します。
@Joel:あなたはUTL_FILE.FREMOVE
の最初のパラメータに参照のディレクトリ・オブジェクト名(ない実際のOSのディレクトリ)を使用しますそれはセキュリティホールを作り出すからです。ディレクトリの前にUTL_FILEを使用するために、すべてのユーザーはOracleユーザーとしてUTL_FILE_DIRディレクトリへの完全な読込みおよび書込みアクセス権を持ちます。ディレクトリを使用すると、特定のディレクトリにアクセスできるユーザーと、そのユーザーが持つ特権をきめ細かく制御できます。 UTL_FILE_DIRを使用することの利点はありません。 –
したがって、fremoveは最初のパラメータとして論理ディレクトリ名か物理ディレクトリ名のどちらかを取ることができますか? –
@Justin Caveもちろん、Oracleユーザーがこれらのディレクトリにアクセスできるというセキュリティ上の懸念があります。それはOPが尋ねたことではなく、完全な開示の精神で利用可能なすべてのオプションを提示するのがよい習慣です。私は、UTL_FILE_DIRが '*'に設定されているデータベースのほんの一握り以上を見ました! :-O。 –