Oracle提供的Utl_File报如何使用??? 我觉得你的数据库的操作系统不是win的,应该是unix或linux,你的路径设置不对,例如:vPath := '/home/oracle/test'; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的系统是Windows 2003/Windows 2000/Windows XP!!!不是Unix系统!!! 那就有奇怪了utl的路径设置的要点是:如果你是在服务器执行(存储过程等),设置的路径是你服务器的路径,文件也存在你的服务器里,如果你是在客户端执行(pl/sql块),则设置的路径是你的客户端的路径,文件也存在你的客户端里。当然你必须有操作此目录的权限例如我的服务器是unix的,我的客户端是win2000:SQL> declare 2 MyHandle Utl_File.File_Type; 3 vPath Varchar2( 20 ); 4 vName Varchar2( 20 ); 5 begin 6 vPath := 'c:\'; 7 vName := 'wqh1.Txt'; 8 Begin 9 MyHandle := Utl_File.FOpen( vPath, vName, 'a' ); 10 Exception 11 When UTL_FILE.INVALID_PATH Then 12 Return; 13 When UTL_FILE.INVALID_MODE Then 14 Return; 15 When UTL_FILE.INVALID_OPERATION Then 16 Return; 17 End; 18 Utl_File.FClose( MyHandle ); 19 end; 20 /PL/SQL 过程已成功完成。 要在INIT.ORA文件中加入UTL_FILE_DIR=D:\...............可以加多行再重启数据库后试试 参考:http://www.oradb.net/sql/plsql_001.htm initsid.ora文件: utl_file_dir参数 在initsid.ora文件中,加入或修改 设置utl_file_dir的要点: 1。 utl_file_dir=* 这表示你能操作任何目录,尽量不要用 2。 utl_file_dir=d:\ 这表示你能操作d:\目录下的文件,但你不能操作d:\目录下的子目录 3。注意在设置 utl_file_dir=路径时,如果路径是长路径名,例如c:\my temp目录,则你必须加上'',例如: utl_file_dir='c:\my temp' 4。utl_file_dir可以是多个路径 utl_file_dir=c:\,d:\,d:\temp,'c:\my temp' 5。设置完必须重新启动数据库 我修改后的InitSid.Ora文件如下IFILE='C:\oracle\admin\XXXXX\pfile\init.ora'utl_file_dir=d:\,c:\,e:\但是还是出现同样的错误!!!Why??? 搞定!!!一个奇怪的现象,如果将utl_file_dir=d:\写在文件最后就出错误!!! 请问在oracle登陆中出现的问题 为什么redo log文件会丢失呢 哪位大吓帮我写个SQL啊,急!在线等 怎么设置sqlplus 里的行宽 请教这样的sql怎么写? Oracle 的基础入门问题 T-SQL编程基础 求救!!关于“ORA-03113: 通信通道的文件结束”的错误 DECODE 多个相同的选择时,怎么简化语句的写法 怎样用存储过程返回一可移动光标,在java里调用? 有什么函数分别取得当年的年、月、日?? 这条语句。。。。。。
utl的路径设置的要点是:
如果你是在服务器执行(存储过程等),设置的路径是你服务器的路径,文件也存在你的服务器里,
如果你是在客户端执行(pl/sql块),则设置的路径是你的客户端的路径,文件也存在你的客户端里。
当然你必须有操作此目录的权限
例如我的服务器是unix的,我的客户端是win2000:
SQL> declare
2 MyHandle Utl_File.File_Type;
3 vPath Varchar2( 20 );
4 vName Varchar2( 20 );
5 begin
6 vPath := 'c:\';
7 vName := 'wqh1.Txt';
8 Begin
9 MyHandle := Utl_File.FOpen( vPath, vName, 'a' );
10 Exception
11 When UTL_FILE.INVALID_PATH Then
12 Return;
13 When UTL_FILE.INVALID_MODE Then
14 Return;
15 When UTL_FILE.INVALID_OPERATION Then
16 Return;
17 End;
18 Utl_File.FClose( MyHandle );
19 end;
20 /PL/SQL 过程已成功完成。
UTL_FILE_DIR=D:\
...............
可以加多行
再重启数据库后试试
http://www.oradb.net/sql/plsql_001.htm
utl_file_dir参数
设置utl_file_dir的要点:
1。 utl_file_dir=* 这表示你能操作任何目录,尽量不要用
2。 utl_file_dir=d:\ 这表示你能操作d:\目录下的文件,但你不能操作d:\目录下的子目录
3。注意在设置
utl_file_dir=路径时,如果路径是长路径名,例如c:\my temp目录,则你必须加上'',例如:
utl_file_dir='c:\my temp'
4。utl_file_dir可以是多个路径
utl_file_dir=c:\,d:\,d:\temp,'c:\my temp'
5。设置完必须重新启动数据库
IFILE='C:\oracle\admin\XXXXX\pfile\init.ora'
utl_file_dir=d:\,c:\,e:\但是还是出现同样的错误!!!Why???