UTL_FILE.FREMOVE引发"文件删除操作失败"

时间:2014-09-03 01:50:04

标签: oracle plsql


我有这段代码

BEGIN
    UTL_FILE.FREMOVE('DIR_USERS', 'user.jpg');
END;

提出

ORA-20000: ORA-29291: file remove operation failed
ORA-6412: at "SYS.UTL_FILE", line 251
ORA-6512: at "SYS.UTL_FILE", line 1230
ORA-6512: at "USERS.PKG_USERS", line 177

我认为错误发生在UTL_FILE包的内置函数中,因为当我使用函数UTL_FILE.FRENAME时,它也会引发相同的错误。

这可能是什么问题?

2 个答案:

答案 0 :(得分:0)

  1. 文件是否存在?
  2. 请注意,UTL_FILE操作在操作系统上作为oracle进程正在运行的用户执行,通常是“oracle”。那么,“oracle”用户是否在包含该文件的目录中拥有rwx privs?所以“oracle”对文件有rw权限吗?

答案 1 :(得分:0)

该文件可以简单地由另一个程序保存。我遇到了同样的问题:

SQL> begin  
  2    utl_file.FREMOVE('GK_IMP_KONN_NEW',  'PDT17_2016-05-26T11-32-38');  
  3  end;  
  4  /  
begin  
*  
FEHLER in Zeile 1:  
ORA-29291: Datei konnte nicht entfernt werden   
ORA-06512: in "SYS.UTL_FILE", Zeile 251  
ORA-06512: in "SYS.UTL_FILE", Zeile 1230  
ORA-06512: in Zeile 2

在无数次尝试之后,我关闭了SQL Developer并再次尝试:

SQL> begin
2    utl_file.FREMOVE('GK_IMP_KONN_NEW',   'PDT17_2016-05-26T11-32-38');
3  end;
4  /  

PL/SQL-Prozedur erfolgreich abgeschlossen.

成功!