oracle 存储过程中调用同义词报错“表和视图不存在”

创建了同义词,直接查询都是正常的,但存储过程中一调用就报“”表和视图不存在“”,
因为"在存储过程中访问公共同义词,必须直接对用户授权,而不能通过角色授权"。

http://blog.csdn.net/linminqin/article/details/6671785

比如我 test 用户的存储过程中要调用 ca 的表,在 test 创建 ca 的同义词后需要

grant all on 同义词表名 to public

另:

如果创建了很多同义词,每一个都赋值很麻烦,可以采用 sql 方式查询,然后复制黏贴运行。

select 'grant select on '||SYNONYM_NAME || ' to PUBLIC; ' from dba_synonyms WHERE OWNER='TEST'

将结果复制出来运行即可。

grant 权限的时候可以用 all,而查询只需要用 select,所以可以只赋予 select

http://blog.itpub.net/77580/viewspace-212827/
via:https://blog.csdn.net/xuechangchun007/article/details/84808284

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值