首页 文章

oracle between子句导致ORA-12015:无法从复杂查询中创建快速刷新物化视图

提问于
浏览
1

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

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

谢谢 .

1 回答

  • 4

    看看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

相关问题