我有2个基本操作表test_table1
和test_table2
,我在其上创建了物化视图日志。我在此之上创建了一个名为test_view1
的视图,它是test_table1
和test_table2
的联接。现在,我需要在此视图test_view1
上创建物化视图。
我将物化视图创建为REFRESH ON COMMIT
并创建了它,但是当我将增量刷新的过程运行为per
execute DBMS_MVIEW.REFRESH('test_mview2', 'F', '', TRUE, FALSE, 0,0,0,FALSE, FALSE);
即使在基表上应用了任何DML,物化视图也不会更新。但是,当我运行完整刷新程序时:
execute DBMS_MVIEW.REFRESH('test_mview2', 'C', '', TRUE, FALSE, 0,0,0,FALSE, FALSE);
它正在更新。
如何为这个特定的物化视图刷新COMMIT?
dbms_mview.explain_mview的输出:(CApability_name --possible - msgtxt)
REFRESH_FAST_AFTER_ANY_DML N查看禁用REFRESH_FAST_AFTER_ONETAB_DML的原因
答案 0 :(得分:0)
来自MV Capabilities的结果:
REFRESH_FAST_AFTER_INSERT N mv引用维护状态的PL / SQL函数
您有一个PL / SQL函数被定义为实体化视图的一部分,或者它引用的视图,这阻止了快速刷新工作。我打赌它会有一个SELECT语句,但无论如何它都不是确定性的。