我从一个引用物化视图(mview1(的标准视图(view1(中进行选择。使用"FORCE"选项创建标准视图,并使用"REFRESH COMPLETE ON DEMAND"创建物化视图。由于我不知道物化视图何时刷新(谁或什么要求刷新(,我无法避免在正常视图查询中使用物化视图的同时对其进行刷新。
当这种情况同时发生时,针对view1的查询错误为:
消息:ORA-08103:对象不再存在
我认为在物化视图中将"COMPLETE"选项更改为"FORCE"选项可以防止此错误的发生。
如果您能对此有所了解和/或提供解决方案,我们将不胜感激。
干杯
首先不要删除和创建物化视图,使用DBMS_MVIEW.REFRESH
过程刷新它-drop是导致ORA-08103: object no longer exists
的原因
您需要将DBMS_MVIEW.REFRESH
的atomic_refresh
参数设置为true
。
这将在单个事务中刷新实体化视图,因此实体化视图永远不会为空。
从技术上讲,DELETE
、INSERT
和commit
是在实体化视图表上执行的,所以在提交之前,您会看到旧状态,在提交新状态之后。