代码之家  ›  专栏  ›  技术社区  ›  Jim

使用group by MAX在提交视图时刷新

  •  0
  • Jim  · 技术社区  · 7 年前

    "REFRESH ON COMMIT" 被甲骨文拒绝。

    有没有一种方法可以将其结构化以使其可更新? created 这是一个约会。

    CREATE MATERIALIZED VIEW MV_SNR_LATEST REFRESH ON COMMIT
    AS
    SELECT * FROM T_SNR snr
    WHERE (snr.created, snr.m_id, snr.snor, snr.ai)
    IN (SELECT MAX(created), m_id, snor, ai 
    FROM t_snr s2 GROUP BY s2.M_ID, s2.snor, s2.AI);
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Wernfried Domscheit    7 年前

    我认为那是不可能的,查查 General Restrictions on Fast Refresh

    物化视图的定义查询限制如下:

    • 物化视图不能包含对SYSDATE和ROWNUM等非重复表达式的引用。

    • 它不能在SELECT子句中包含分析函数(例如,RANK)。

    • 它不能引用定义了XMLIndex索引的表。

    • 它不能包含模型子句。

    • 它不能包含带有子查询的HAVING子句。

    • 它不能包含任何、全部或不存在的嵌套查询。

    • 它不能包含[START WITH]CONNECT BY子句。

    • 提交时,物化视图不能具有远程详细信息表。

    • 带有GROUP BY子句的物化联接视图和物化聚合视图不能从索引组织的表中进行选择。