最近由于要迁移Oracle数据库,所以涉及到UTL_FILE_DIR的设置(oracle11g,linux系统)。主要用于执行存储过程输出日志。
当时已做操作如下:
create directory PROC_LOG_DIR as '/ispay/ispay_dblog';
grant read, write on directory PROC_LOG_DIR to public;
但是执行存储过程时,报错如下:
ORA-29283: 文件操作无效
ORA-06512: 在 "SYS.UTL_FILE", line 41
ORA-06512: 在 "SYS.UTL_FILE", line 512
ORA-29283: 文件操作无效
ORA-06512: 在 "ISPAY.PROC_TICKET_INVALID", line 47
ORA-06512: 在 line 1
在保证无错误拼写,且指定路径已建立的情况下。感觉是oracle用户没有对ispay/ispay_dblog的读写权限。由公司root用户修改权限后执行正常。