0

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

我尝试运行命令:

CREATE MATERIALIZED VIEW mvX PARALLEL BUILD IMMEDIATE REFRESH FAST AS SELECT * FROM table_name

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

  1. 我已经使用主键和 rowid 在表上创建了一个成熟的视图日志。
  2. 我尝试在复制表上创建相同的成熟视图(CREATE TABLE copy_table_name as select * from table_name)并成功完成(也在该表上创建了日志)

此视图必须是 FAST REFRESH。我无法解释为什么在复制表上它成功而在原始表上它失败了。帮助?

4

1 回答 1

0

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

于 2013-12-07T07:05:32.310 回答