问题描述

存储过程里一个很简单的select语句,编译这个存储过程,总是提示ORA-00942:表或视图不存在。但是将这个sql单独复制出来,在sql窗口可以正常执行,放在存储过程中就会出错。

原因分析

角色在函数、存储过程、触发器中都是失效的,也就是说,用户从角色继承过来的权限,不能在函数、存储过程、触发器中使用。在函数、存储过程、触发器中,如果要访问其他用户的对象,需要显式地给用户授予访问的权限。

解决方法

显示授权

grant select any table to 当前用户

原文链接:https://miansen.wang/2018/09/14/2/