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

时间:2013-07-01 12:42:34

标签: oracle11g materialized-views

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

我尝试运行命令:

创建物质化视图mvX 并行建立立即 刷新快 SELECT * FROM table_name

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

  1. 我在表上创建了一个带有主键和rowid的视图日志。
  2. 我尝试在复制表上创建相同的matiralized视图 (CREATE TABLE copy_table_name as select * from table_name) 并且它成功完成(也在此表上创建了一个日志)
  3. 此视图必须快速刷新。 我无法解释为什么在复制表上它成功并且在原始表上它失败了。 帮助

1 个答案:

答案 0 :(得分:0)

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