当我搜索注册到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
的目录?
我也无法通过winscp或putty搜索/oradata/hrtst/db/tech_st/11.2.0/appsutil/outbound/HRTS
。
我也创建了一个像
这样的目录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
尽管这个块已经成功执行但是在我检查时没有在目录中创建文件。