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



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

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:无法从复杂查询创建快速刷新具体化视图

我不明白它如何与快速刷新限制相匹配

谢谢。

查看快速刷新的一般限制

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

  • 实例化视图不得包含对非重复表达式(如 SYSDATE 和 ROWNUM(的引用。

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

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

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

  • 它不能包含 MODEL 子句。

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

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

  • 它不能包含 [开头为 ...]连接依据子句。

  • 它不能包含不同站点的多个详细信息表。

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

  • 嵌套实例化视图必须具有联接或聚合。

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

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

最新更新