欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-06 20:08:04
...

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

见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/

相关标签: oracle ora-00942