Oracle 9i以降を使用している場合は、代わりにディレクトリオブジェクトを使用する必要があります。これは完全なパスのみを許可する(ワイルドカードを許可しない)ため、より安全です。また、init.oraファイルでUTL_FILE_DIRを使用する場合とは異なり、データベースを再起動する必要はありません。また、特定の個々のユーザーに各ディレクトリの権限を付与できるため、はるかに安全です。
しかし、今最も興味を引くのは、ディレクトリオブジェクトを抽象化することで、実際のOSパスを簡単に変更できるため、環境ごとに異なる可能性があることです。ちょうどこのように:
alter directory temp_data as '/home/oracle/tmp';