【问题标题】:oracle between clause cause ORA-12015: cannot create a fast refresh materialized view from a complex queryoracle between子句导致ORA-12015:无法从复杂查询创建快速刷新物化视图
【发布时间】:2018-06-29 08:56:38
【问题描述】:

我用脚本成功创建了物化视图:

CREATE MATERIALIZED VIEW orderitem_mvmt
BUILD IMMEDIATE
REFRESH FAST
ON DEMAND
AS
select * from order_item;

为了提高成绩我改成这样

CREATE MATERIALIZED VIEW orderitem_mvmt
BUILD IMMEDIATE
REFRESH FAST
ON DEMAND
AS
select * from order_item
where to_char(last_upd,'yyyy') between to_char(sysdate,'yyyy')-3 and  to_char(sysdate,'yyyy')+3;

运行脚本引发错误ORA-12015: cannot create a fast refresh materialized view from a complex query

我不明白它如何匹配快速刷新Restrictions

谢谢。

【问题讨论】:

    标签: oracle materialized-views


    【解决方案1】:

    看看General Restrictions on Fast Refresh

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

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

    • 物化视图不得包含对 RAW 或 LONG RAW 数据类型的引用。

    • 不能包含 SELECT 列表子查询。

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

    • 不能包含 MODEL 子句。

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

    • 它不能包含具有 ANY、ALL 或 NOT EXISTS 的嵌套查询。

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

    • 不能在不同站点包含多个明细表。

    • ON COMMIT 物化视图不能有远程详细信息表。

    • 嵌套物化视图必须具有连接或聚合。

    • 具有 GROUP BY 子句的物化连接视图和物化聚合视图无法从索引组织表中进行选择。

    您的查询包含SYSDATE,因此您不能将其用于FAST REFRESH

    【讨论】:

      猜你喜欢
      • 2018-02-18
      • 2015-11-11
      • 1970-01-01
      • 2016-12-11
      • 2013-06-28
      • 2015-06-13
      • 2010-11-26
      • 2016-07-20
      • 1970-01-01
      相关资源
      最近更新 更多