我有一个看起来有点像下面的物化视图,我想知道是否还有这个物化视图'快速'可刷新?基本上,我问的是:
物化视图是否包含oracle功能,例如COALESCE,NVL,NVL2等,并且仍然可以快速刷新
物化视图是否包含我已经制作的功能,并且仍然可以快速刷新。
实体化视图是否可以包含派生表的连接并且仍然可以快速刷新?
我检查了Oracle documentation有关此问题,并没有列出这些限制,但是在我自己的系统上测试下面的情况之后,我相信它是可能的。< / p>
Oracle版本:10g
SELECT COALESCE (col1, col2),
myOracleFunction(col3, col4)
FROM tableA a
LEFT OUTER JOIN
(SELECT id, MAX (sample_key) prim_sam_key
FROM table_sample
GROUP BY id
HAVING COUNT (1) = 1) b ON a.id = b.id;
答案 0 :(得分:2)
您遗失的link you provided的要求:
- 必须指定COUNT(*)。
- SELECT列表必须包含所有GROUP BY列。
此外,以下要求表明,对于您的查询,只有在table_sample
更新后才能进行快速刷新,但tableA
尚未更新:
- 具有外连接的物化聚合视图可快速刷新 在常规DML和直接加载之后,仅提供外表 已被修改。此外,连接必须存在唯一约束 内连接表的列。如果有外连接,那么全部 连接必须通过AND连接,并且必须使用相等(=) 操作者。
最后,在询问物化视图时,最好准确说明您创建的物化视图日志。