我现在按照网上的方法,希望能够用sql读写文件,但是总是出错,SQL如下:首先我创建了Directory,并给我的用户读写权限,declare 
  FILE_HANDLE utl_file.file_type; 
begin 
  FILE_HANDLE:=UTL_FILE.FOPEN('TEMP','test.txt','a'); 
  UTL_FILE.put_line(FILE_HANDLE,'jerrygao'); 
  UTL_FILE.FCLOSE(FILE_HANDLE); 
end; 
但是总是报错:
ora-29283:无效的文件操作是怎么回事?谢谢大家

解决方案 »

  1.   

    ORA-29283: invalid file operation 
    Cause: An attempt was made to read from a file or directory that does not exist, or file or directory access was denied by the operating system.
    Action: Verify file and directory access privileges on the file system, and if reading, verify that the file exists.
    你的text.txt存在不,要不用个绝对路径代替text.txt试下...
      

  2.   

    你的temp是个啥目录???
    你确定temp目录对不对???
    比如象D:/temp???
      

  3.   

    没有建立目录,创建目录语句如下
    create or replace directory TEMP as 'd:\test.txt';
      

  4.   

    SQL> create or replace directory temp
      2    as 'D:\';目录已创建。SQL> host dir d:\
     驱动器 D 中的卷是 ORACLE
     卷的序列号是 0CE4-9C5F d:\ 的目录2010-01-11  16:15    <DIR>          oracle
                   0 个文件              0 字节
                   1 个目录 13,819,805,696 可用字节SQL> declare
      2    FILE_HANDLE utl_file.file_type;
      3  begin
      4    FILE_HANDLE:=UTL_FILE.FOPEN('TEMP','test.txt','a');
      5    UTL_FILE.put_line(FILE_HANDLE,'jerrygao');
      6    UTL_FILE.FCLOSE(FILE_HANDLE);
      7  end;
      8  /PL/SQL 过程已成功完成。SQL>
      

  5.   

    大哥我的过程和你的一摸一样,也在directory里面看到了我建立的directory,但是就是不行,执行的时候是报错文件操作无效...
      

  6.   

    贴出你在sqlplus执行的全过程。
      

  7.   

    不是目录的问题,如果目录问题,是如下提示:
    SQL> declare
      2    FILE_HANDLE utl_file.file_type;
      3  begin
      4    FILE_HANDLE:=UTL_FILE.FOPEN('TEMP','test.txt','a');
      5    UTL_FILE.put_line(FILE_HANDLE,'jerrygao');
      6    UTL_FILE.FCLOSE(FILE_HANDLE);
      7  end;
      8  /
    declare
    *
    第 1 行出现错误:
    ORA-29280: 目录路径无效ORA-06512: 在 "SYS.UTL_FILE", line 33
    ORA-06512: 在 "SYS.UTL_FILE", line 436
    ORA-06512: 在 line 4
    SQL>