嗨我正在运行Oracle 11,我正在尝试使用UTL_FILE.FOPEN写入服务器盒上的目录.
为了测试这个,我使用以下脚本(包括输出):
SQL> @D:\test.sql
declare
l_file_handle UTL_FILE.FILE_TYPE;
begin
l_file_handle := UTL_FILE.FOPEN('/appl/mydir',
'/appl/mydir/filename',
'W');
UTL_FILE.FCLOSE(l_file_handle);
DBMS_OUTPUT.PUT_LINE('FINISHED');
end;
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 7
SQL>
Run Code Online (Sandbox Code Playgroud)
我将/ appl/mydir添加到UTL_FILE参数:
SELECT value
FROM V$PARAMETER
WHERE NAME = 'utl_file_dir';
/appl/mydir, /appl/mydir2, /appl/mydir3
Run Code Online (Sandbox Code Playgroud)
所有UNIX上的UNIX目录都是可写的:
$ ls -l /appl/mydir
total 0
drwxrwsrwx 2 user userc 363968 Nov 27 13:46 mydir
Run Code Online (Sandbox Code Playgroud)
使用oracle Directory对象不是一个选项,我知道使用UTL_FILE_DIR实现的缺点.
以上脚本失败的任何想法?