【问题标题】:Materialized View cannot set on commit refresh物化视图无法在提交刷新时设置
【发布时间】:2018-02-15 13:12:51
【问题描述】:

我正在尝试基于另一个创建此物化视图,但不断收到错误消息:

Error report -
ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view
12054. 00000 -  "cannot set the ON COMMIT refresh attribute for the materialized view"
*Cause:    The materialized view did not satisfy conditions for refresh at
           commit time.
*Action:   Specify only valid options.

查看:

CREATE MATERIALIZED VIEW MV_LLATTRDATA_MAX_VERSIONS
    NOLOGGING
    BUILD IMMEDIATE 
    REFRESH FAST ON COMMIT WITH ROWID
    ENABLE QUERY REWRITE
    AS 
        SELECT AD.DEFID, AD.ATTRID, MAX(AD.VERNUM) AS MAX_VERNUM, MIN(AD.DEFVERN) AS MAX_DEFVERN
        FROM   CSTST.MV_LLATTRDATA_PARTITIONED_TEST AD, DTREE DT -- dtree is a view
        WHERE AD.ID = DT.DATAID   
        GROUP BY AD.DEFID, AD.ATTRID;

我在基表上设置了日志,我不太确定还要检查什么。

【问题讨论】:

标签: sql oracle materialized-views


【解决方案1】:

在使用 ROWID 选项创建快速可刷新 MV 时应考虑某些限制。

WITH ROWID 子句

指定 WITH ROWID 以创建 rowid 物化视图。如果物化视图不包括主表的所有主键列,则 Rowid 物化视图很有用。 Rowid 物化视图必须基于单个表,并且不能包含以下任何内容:

不同或聚合函数

GROUP BY 或 CONNECT BY 子句

子查询

加入

设置操作

CREATE MATERIALIZED VIEW

【讨论】:

  • 哦,废话,我要去一个小组,然后加入
猜你喜欢
  • 2011-07-09
  • 2013-12-04
  • 2013-12-04
  • 2012-02-16
  • 2016-03-08
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 2020-05-10
相关资源
最近更新 更多