我正试图在没有where子句的表上创建一个实体化视图。但是"REFRESH ON COMMIT"
被oracle拒绝了。
有没有一种方法来构建它,使其可更新?created
是一个日期。
CREATE MATERIALIZED VIEW MV_SNR_LATEST REFRESH ON COMMIT
AS
SELECT * FROM T_SNR snr
WHERE (snr.created, snr.m_id, snr.snor, snr.ai)
IN (SELECT MAX(created), m_id, snor, ai
FROM t_snr s2 GROUP BY s2.M_ID, s2.snor, s2.AI);
我认为这不可能,请查看快速刷新的一般限制
物化视图的定义查询受到如下限制:
物化视图不得包含对非重复表达式(如SYSDATE和ROWNUM(的引用。
物化视图不得包含对RAW或LONG RAW数据类型的引用。
它不能包含SELECT列表子查询
它不能在SELECT子句中包含分析函数(例如RANK(。
它不能引用定义了XMLIndex索引的表。
它不能包含MODEL子句。
它不能包含带有子查询的HAVING子句。
它不能包含具有ANY、ALL或NOT EXISTS的嵌套查询。
它不能包含[START WITH…]CONNECT BY子句。
它不能包含不同站点的多个详细信息表。
ON COMMIT物化视图不能具有远程详细信息表。
嵌套的物化视图必须具有联接或聚合。
具有GROUP BY子句的物化联接视图和物化聚合视图不能从索引组织表中进行选择。