问题描述
如果在Oracle中将实例化视图创建为FAST刷新。是否在此MV中执行一次FORCE刷新,如果由于某些问题而导致FAST刷新失败,是否完成COMPLETE刷新?
DBMS_MVIEW.REFRESH('MV_NAME');
如果FAST刷新失败,此语句将执行COMPLETE刷新。该视图被创建为快速刷新。
解决方法
如果您未在命令中指定刷新方法,则它将默认为mview的已定义方法。如果要使用“ FORCE”(永远不会是默认值),则需要在命令中指定该值:
dbms_mview.refresh('MV_NAME','?');
通常来说,最好明确地指定想要的内容,而不是将其保留为默认值。默认动作有时会随着时间而改变,而其他试图弄懂您的代码的人可能无法轻易理解。
请参见dbms_mview.refresh上的文档:https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_MVIEW.html#GUID-DD332F65-A5BC-4DE6-814E-EAE2E0275F3D