複合問合せ(UNION ALL)のマテリアライズド・ビューのつくり方

けっこう手こずった。
というのは、REFRESH COMPLETEタイプならふつうにつくれるけど、
高速リフレッシュをしたかったのでREFRESH FAST ON COMMITタイプをつくろうとした。
そしたらエラーがでまくった。


まず、高速リフレッシュするには、マテリアライズド・ビュー・ログの作成が必要。
そして、複合問合せで高速リフレッシュのマテビューをつくるには、MARKERの指定が必要。

CREATE MATERIALIZED VIEW MV_TEST
REFRESH FAST ON COMMIT
AS
SELECT HOGE1, HOGE2, 1 AS MARKER
FROM HOGE
UNION ALL
SELECT BAR1, BAR2, 2 AS MARKER
FROM BAR


Oracle9i データ・ウェアハウス・ガイド(リリース2 9.2)より。