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




