问题描述
存储过程里一个很简单的select语句,编译这个存储过程,总是提示ORA-00942:表或视图不存在。但是将这个sql单独复制出来,在sql窗口可以正常执行,放在存储过程中就会出错。
原因分析
角色在函数、存储过程、触发器中都是失效的,也就是说,用户从角色继承过来的权限,不能在函数、存储过程、触发器中使用。在函数、存储过程、触发器中,如果要访问其他用户的对象,需要显式地给用户授予访问的权限。
解决方法
显示授权
grant select any table to 当前用户
存储过程里一个很简单的select语句,编译这个存储过程,总是提示ORA-00942:表或视图不存在。但是将这个sql单独复制出来,在sql窗口可以正常执行,放在存储过程中就会出错。
角色在函数、存储过程、触发器中都是失效的,也就是说,用户从角色继承过来的权限,不能在函数、存储过程、触发器中使用。在函数、存储过程、触发器中,如果要访问其他用户的对象,需要显式地给用户授予访问的权限。
显示授权
grant select any table to 当前用户
上一篇: git强制覆盖本地代码(与git远程仓库保持一致)
下一篇: Oracle字段常用操作