アプリ版:「スタンプのみでお礼する」機能のリリースについて

マテリアライズドビューを作成しましたら、
『複合問合せから高速リフレッシュ・マテリアライズド・ビューを作成できません。』とエラーが出てしまいました。
下記の様に、テーブルを作成し、Viewを作成した後、
マテリアライズド・ビューを作成しました。
Viewを作成するところまでは、現在のシステムの都合上、変更する事が出来ません。
ですので、もし、マテリアライズド・ビューを作成する箇所を修正し、
エラーを回避する方法を教えて下さい。
宜しくお願い致します。

■テーブル1の作成
(1)Create table TEST_TBL1 (
Test1 nchar(6),
Test2 nchar(6)
);

■テーブル2の作成
(2)Create table TEST_TBL2 (
Test1 nchar(6),
Test2 nchar(6)
);

■ビューの作成
(3)create view TEST_VIEW(ID, TITLE) as
select * from TEST_TBL1
union all
select * from TEST_TBL2;

■マテリアライズドビューの作成
(4)create materialized view TEST_MVIEW
REFRESH FAST ON DEMAND AS
SELECT * FROM TEST_VIEW;

ご回答の程、宜しくお願い致します。

A 回答 (1件)

マニュアルの「UNION ALLを含むマテリアライズド・ビューの高速リフレッシュに関する制限」は読まれました?



・高速リフレッシュには、テーブル1、テーブル2にマテリアライズドビューログが必要ですので作成してください。
・UNION ALLを行う場合、ROWIDとUNION ALLマーカーが必要です。
つまり、Viewは最低でもROWIDとマーカーの2項目が追加されてないとだめです。

ということで、ビューは変更できない質問者さんは、
・高速リフレッシュはあきらめる
・ビューを経由するのはあきらめ、直接マテビューにUNION ALLを切る
CREATE MATERIALIZED VIEW TEST_MVIEW
REFESH FAST ON DEMAND AS
SELECT 1 Mk,ROWID CRID,Test1,Test2 FROM TEST_TBL1
UNION ALL
SELECT 2 Mk,ROWID CRID,Test1,Test2 FROM TEST_TBL2
ということになります。
    • good
    • 2
この回答へのお礼

いつもお世話になっております。
丁寧で分かり易いご回答に感謝しております。
ビューを変更しない場合、上記のどちらかという事になるのですね。
とても助かりました。本当にありがとうございました。
また、何かございましたら、何卒宜しくお願い致します。

お礼日時:2008/11/22 02:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す