PL / SQL ORA-29280:无效的目录路径和ORA-06512:在Oracle 11g中的“ SYS.UTL_FILE”处

时间:2018-08-09 11:43:31

标签: database oracle plsql oracle11g

我只想使用UTL_FILE概念将表数据写入文本文件。我要做的是

i)创建一个新目录:

  Create directory ddd as 'D:\sql';

ii)授予该目录对用户HR的读写访问权限:

 grant read,write on directory ddd to hr;

iii)授予其他UTL_FILE特权:

 grant execute on UTL_FILE to hr;

我编写了程序,并得到如下错误:

SQL> connect hr/admin

Connected.

SQL> declare      
  2   f  utl_file.file_type;      
  3  i  varchar(100);    
  4  begin    
  5  f:=utl_file.fopen('ddd','utlfile.txt','w',32767);    
  6  for x in(select first_name,salary from employees where rownum<=10)loop    
  7  i:=x.first_name||' '||x.salary;    
  8  utl_file.put_line(f,i);    
  9  utl_file.new_line(f);    
 10  end loop;    
 11  utl_file.fclose(f);    
 12  end;    
 13  /

获得的输出为:

declare    
*    
ERROR at line 1:    
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 5

我不知道我在这里想念什么。。。我在这个问题上苦苦挣扎了大约2天。请帮助我。

1 个答案:

答案 0 :(得分:0)

我们使用的变量定义为order: [ [ { model: survey, as: 'survey' }, 'subjectId', 'ASC'], [ { model: survey, as: 'survey' }, { model: question, as: 'question' }, 'id', 'ASC'] ] 而不是char,因此它将空格填充到文件名中。