微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – PLS-00201:必须声明标识符UTIL_FILE

我正在尝试将查询中的数据导出到安装在 Windows Server 2008计算机上的Oracle Enterprise Express的csv文件中.

我找到了这个解决方案:

http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:235814350980

它基本上编写一个函数并使用UTIL_FILE对象来创建和写入文件添加分隔符.

当我尝试在Oracle sql Developer中创建函数时收到以下错误

PLS-00201: identifier UTIL_FILE must be declared.

当我运行以下命令时:

select owner,object_type from all_objects where object_name = 'UTL_FILE'

结果是:

OWNER      Object Type
---------  -----------
PUBLIC     SYNONYM

编辑:

运行:

GRANT EXECUTE ON UTL_FILE TO PUBLIC

得到:

Error starting at line 2 in command:
GRANT EXECUTE ON UTL_FILE TO PUBLIC
Error report:
sql Error: ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

问题是什么?

解决方法

似乎对我缺乏特权. PUBLIC用户通常在该程序包上授予EXECUTE特权,但该特权可能会被撤销.

您可以通过发出以下查询来检查PUBLIC是否具有该权限:

SELECT * FROM all_tab_privs WHERE grantee = 'PUBLIC' AND table_name = 'UTL_FILE';

如果没有返回任何行,请尝试将执行权限授予您记录为的用户,或者授予PUBLIC,作为某些特权用户,例如SYS:

GRANT EXECUTE ON SYS.utl_file TO user_name;

编辑

您必须在记录时授予该权限,例如,SYS用户.

原文地址:https://www.jb51.cc/mssql/77375.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐