首页 文章

在Oracle 11g上使用快速refrese创建物化视图

提问于
浏览
0

在具有很多列,索引和约束的表上创建物化视图时,我遇到了一个奇怪的问题 .

我试过运行命令:

创建物化视图mvX并行构 Build 即刷新快速作为SELECT * FROM table_name

在运行命令后,我得到:“无法从复杂查询创建快速刷新物化视图”所以我运行命令:dbms_mview.explain_mview('SELECT * FROM table_name')并检查了REFRESH_FAST_AFTER_INSERT处的mv_capabilities_table,有消息:“此类型MV不支持FROM列表中的内联视图或子查询

  • 我在表上用主键和rowid创建了一个matiralized视图日志 .

  • 我试图在复制表上创建相同的matiralized视图(CREATE TABLE copy_table_name as select * from table_name)并且它成功完成(在此表上也创建了一个日志)

此视图必须快速刷新 . 我无法解释为什么在复制表上它成功并且在原始表上它失败了 . 救命?

1 回答

  • 0

    表中的一列是否可能是计算/虚拟列?如果有,那么我会调查它在这种情况下可能不起作用的可能性 . 这是我能想到为什么MV功能会在你的情况下给出这样的错误的唯一原因 .

相关问题