编译强制视图会出错

时间:2017-07-12 15:24:21

标签: oracle compiler-warnings

我们在oracle中面临强制视图的问题。修改了视图的某些基础对象以添加新列。发布当我们使用alter view < view name> compile编译视图时,我们收到错误

  

警告:视图因编译错误而改变。

在检查错误时,我们得到了:

ORA-00942: table or view does not exist.

但是当我们执行视图选择查询时,它正在执行正常并提取数据。

有人可以帮我解决视图编译问题吗?

1 个答案:

答案 0 :(得分:2)

  

“我们正在执行视图选择查询,它正在执行正常”

因此,基础查询似乎从另一个模式中的表中选择数据,即不是尝试创建视图的模式,或者以某种其他方式引用另一个模式中的对象。

发生的情况是表所有者将其表的权限授予角色,该角色被授予查询架构。通过角色授予的权限允许我们针对授予的对象编写SQL,但不构建编程对象(PL / SQL,视图等)。为此,表所有者需要直接向查询用户授予权限。

这是Oracle安全模型强加的限制。没有其他解决方法。