首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从包中的另一个架构引用表?

问如何从包中的另一个架构引用表?
EN

Database Administration用户
提问于 2014-06-17 20:19:41
回答 1查看 14.3K关注 0票数 3

我正在使用蟾蜍在一个架构中创建一个包,这个包的所有者是我。我的包使用另一个架构的表。

包有一个使用游标的过程。当我创建包时,我会得到编译错误:

主体509 30 PL/SQL: ORA-00904::无效标识符

错误指向游标的选择所使用的表,该表位于另一个架构中。

如果我在蟾蜍中直接运行这个查询,它就能很好地工作,我是Oracle的新手,我不明白为什么会出现这个错误。我为什么要犯这个错误?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-06-19 03:49:42

摘自“指南,11g版本2 (11.2),E 41502-05”中的6编写PL/SQL子程序和软件包部分

要创建没有错误(要成功编译子程序或包),需要这些附加特权: --必须显式地授予子程序或包的所有者--必须为code.正文中引用的所有对象授予必要的对象特权--所有者不能通过角色获得所需的权限。

必须将此表上的select权限授予拥有包的架构。重要的是,此权限应直接授予包所有者,而不是使用角色间接授予。使用角色足以直接由蟾蜍选择表,但如果要在包中选择表,则不够。

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/68439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档