UTL_DIR に登録されているディレクトリを検索すると、次のようになります。
select value from v$parameter where name='utl_file_dir';
/usr/tmp, /usr/tmp, /oradata/hrtst/db/tech_st/11.2.0/appsutil/outbound/HRTS, /usr/tmp
これ/usr/tmp
は のディレクトリということUTL_DIR
ですか? /oradata/hrtst/db/tech_st/11.2.0/appsutil/outbound/HRTS
また、winscpまたはputtyで検索できません。
また、次のようなディレクトリを作成しました
create or replace directory MY_DIR as '/usr/tmp';
そして、私はこのフォルダに書き込もうとしました:
DECLARE
fileHandler UTL_FILE.FILE_TYPE;
begin
fileHandler := UTL_FILE.FOPEN('MY_DIR', 'test_file.txt', 'W');
UTL_FILE.PUTF(fileHandler, 'Writing TO a file\n');
UTL_FILE.FCLOSE(fileHandler);
EXCEPTION
WHEN others THEN
raise_application_error(-20000, 'ERROR: Invalid PATH FOR file.');
END;
anonymous block completed
このブロックは正常に実行されましたが、チェックしたときにディレクトリにファイルが作成されませんでした。