我们遇到了一个问题,即物化视图没有刷新,并且出现编译错误。其中一位资深开发人员说,他只是想出了解决方法 - 告诉toad编译物化视图。
所以我的问题很简单:刷新和“编译”之间的区别是什么?
答案 0 :(得分:8)
物化视图的刷新是一种数据操作。创建视图时指定的MV中的数据是最新的,例如快速刷新,完全刷新等。
编译MV时,Oracle会重新验证视图所基于的查询。由于MV所基于的一个或多个基础对象的更改,您的MV可能无效。
答案 1 :(得分:5)
刷新更新实体化视图所包含的数据。如果物化视图的定义无效,则无法执行此操作。
编译验证实体化视图的定义,即SQL有效并且它所依赖的对象存在。
答案 2 :(得分:0)
编译=验证并运行
刷新=重新提交数据。 它与编程之外的含义和定义相同。