我正在尝试从安装在 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
EDIT:
跑步:
GRANT EXECUTE ON UTL_FILE TO PUBLIC
Gives:
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;
Edit
您必须在登录时授予权限,例如,SYS
user.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)