You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Oracle创建快速刷新物化视图遇ORA-12015错误的解决求助

Oracle创建快速刷新物化视图遇ORA-12015错误的解决求助

各位Oracle开发的大佬们好,最近我在搭建一个需要快速刷新的物化视图时卡壳了,碰到了ORA-12015错误,折腾了好一阵没找到头绪,来这儿请教下大家的解决思路。

我的需求

我需要基于三个关联表(table_one、table_two、table_three)创建一个物化视图,并且必须支持FAST REFRESH,用来提升后续查询的性能。

我已经写的代码

首先是我尝试创建的物化视图语句:

CREATE MATERIALIZED VIEW anon_flag_mv 
REFRESH FAST ON DEMAND 
AS 
SELECT t2.id AS t2_id, 
       t3.cfg_id AS cfg_id, 
       t3.parent_ref_id AS parent_ref_id, 
       t1.category_ref_id AS category_ref_id, 
       t1.is_on_demand AS is_on_demand, 
       t3.id AS t3_id, 
       t1.id AS t1_id 
FROM table_one t1 
JOIN table_two t2 ON t2.id = t1.category_ref_id 
JOIN table_three t3 ON t1.id = t3.parent_ref_id;

为了支持快速刷新,我也给三个表都创建了物化视图日志:

-- table_one的物化视图日志
CREATE MATERIALIZED VIEW LOG ON table_one 
WITH PRIMARY KEY, SEQUENCE (category_ref_id, is_on_demand) 
INCLUDING NEW VALUES;

-- table_two的物化视图日志
CREATE MATERIALIZED VIEW LOG ON table_two 
WITH PRIMARY KEY, SEQUENCE (cfg_id, parent_ref_id) 
INCLUDING NEW VALUES;

-- table_three的物化视图日志
CREATE MATERIALIZED VIEW LOG ON table_three 
WITH PRIMARY KEY, SEQUENCE 
INCLUDING NEW VALUES;

遇到的错误

执行物化视图创建语句时,直接抛出了这个错误:

ORA-12015: cannot create a fast refresh materialized view from a complex query

我本来以为建了带主键和序列的物化视图日志就能满足快速刷新的条件了,结果还是踩了坑。有没有大佬能帮我看看,我哪里操作错了?或者需要怎么调整代码才能让这个物化视图支持快速刷新呢?

火山引擎 最新活动