我正在从引用实例化视图(mview1)的标准视图(view1)中进行选择。标准视图是使用“ FORCE”选项创建的,而实例化视图是“按需刷新完成”的。我不知道何时刷新实例化视图(谁或什么需要刷新),所以我无法避免在普通视图查询中同时使用该实例化视图。
同时发生这种情况时,针对view1的查询错误如下:
消息:ORA-08103:对象不再存在
我认为,在物化视图中将“ COMPLETE”选项更改为“ FORCE”将防止发生此错误。
如果您可以对此有所了解和/或提供解决方案,将不胜感激。
欢呼
答案 0 :(得分:1)
首先不要删除并创建实例化视图,使用DBMS_MVIEW.REFRESH
过程刷新它-DROP是导致ORA-08103: object no longer exists
的原因
您需要将DBMS_MVIEW.REFRESH
的{{3}}参数设置为true
。
这将在单个事务中刷新实现视图,因此实现视图永远不会为空。
技术上,在实现视图表上执行DELETE
,INSERT
和commit
,因此,在提交新状态之后,直到提交之前,您会看到旧状态。