MyFile:=UTL_FILE.FOPEN('d:\output\',fileName,'a')
当我调用FOPEN时报29280 “目录路径无效”
我的系统是win2003,oracle的数据库服务器就在我机器上
我创建了一个目录 create or replace directory dir_name as 'd:\output\' 然后我授权grant read write dir_name to user(用户)
我这个用户也是dba用户,请高手指点
当我调用FOPEN时报29280 “目录路径无效”
我的系统是win2003,oracle的数据库服务器就在我机器上
我创建了一个目录 create or replace directory dir_name as 'd:\output\' 然后我授权grant read write dir_name to user(用户)
我这个用户也是dba用户,请高手指点
create directory ddr as 'd:\oracle\doer'
MyFile:=UTL_FILE.FOPEN('directoryName',fileName,'a')
这里面的directoryName使你在oracle中建立的一个路径对象名,而不能直接写路径。
这是基于安全的考虑。
SQL> show parameters utl_file_dirNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string
SQL> alter system set utl_file_dir='c:\backup' scope=spfile;System altered.SQL> show parameters utl_file_dir;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> show parameter utl_file_dir;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string c:\backup
SQL>
SQL> declare
2 Write_file_name VARCHAR2(50);
3 file_handle utl_file.file_type;
4 begin
5 write_file_name := 'test.txt';
6 file_handle := utl_file.fopen('c:\backup',write_file_name,'a');
7 dbms_output.put_line('success!');
8 end;
9 /PL/SQL procedure successfully completed
1.设置初始化参数utl_file_dir='你要写文件的目录'
2.创建directory;grant对应的权限。程序中调用创建directory的名字,而不是文件路径。