我们刚刚遇到了一个问题,即物化视图没有刷新,并给出了编译错误。一位高级开发人员说,他刚刚想出了解决方法——告诉 toad 编译物化视图。
所以我的问题很简单:刷新和“编译”有什么区别?
我们刚刚遇到了一个问题,即物化视图没有刷新,并给出了编译错误。一位高级开发人员说,他刚刚想出了解决方法——告诉 toad 编译物化视图。
所以我的问题很简单:刷新和“编译”有什么区别?
物化视图的刷新是一种数据操作。MV 中的数据按照创建视图时的指定更新,例如快速刷新、完全刷新等。
当您编译 MV 时,Oracle 会重新验证视图所基于的查询。由于 MV 所基于的一个或多个基础对象发生变化,您的 MV 可能无效。
刷新会更新物化视图保存的数据。如果物化视图的定义无效,则无法执行此操作。
编译验证物化视图的定义,即 SQL 有效并且它所依赖的对象存在。
编译 = 验证并运行
刷新 = 重新提交数据。它与编程之外的含义和定义相同。