マテリアライズド・リフレッシュ・ビューの作成およびプロシージャで発生したエラー分析レコードについて

1720 ワード

詳細
マテリアライズド・リフレッシュ・ビューの作成およびプロシージャで発生したエラー分析レコードについて(インクリメンタル・リフレッシュ・ビューに偏っている)
1、ビューに複数のコンストレイントを追加できますか?
通常のビューでは、作成中に複数のコンストレイントを設定できません.すなわち、with read onlyとwith check optionは2つしか選択できません.複数を作成すると通過しません.
2、物化ビューログは右側のディレクトリでdropを右クリックできますか?
可能ですが、ビューログを再作成するとすでに存在すると報告されますので、以下に示すように手動sqlで削除する必要があります.
drop materialized view log on teacher

3、ORA-12006:a materialized view log for "xxxx"."xxx"does not record the primary key;
この問題は長い間悩んでやっと答えを見つけて、本当にすべて急いで鼻血を流して、ここで記録します
これは、次のように、マテリアライズドインクリメンタルリフレッシュビューを作成する前に作成したマテリアライズド・ビュー・ログがrowidに基づいているためです.
create materialized view log on teacher with rowid;

次に、物体化ビューsqlを作成します.
create materialized view mv_teacher
refresh fast 
as 
select r.rowid ,r.name name1 from teacher r

このビューはデフォルトでprimary keyに基づいて構築されているので作成に成功せず、以上のエラーが提示されていますが、エラーを報告しないにはどう書けばいいのでしょうか.以下に示す
create materialized view mv_teacher5
refresh fast with rowid --        with rowid
as 
select r.rowid rr,r.*from teacher r--    rowid,      

上のsqlに加えた注釈に注意してください.注意しなければならない点です.with rowidを使用します.そうすれば、私たちが作成したビューはrowidに基づいており、rowidに別名を付ける必要があります.そうしないと、作成は成功しません.
ではrowidベースのビューがある以上primary keyベースのインクリメンタルリフレッシュビューもあります
定義方法は次のとおりです.

create materialized view log on teacher with primary key;--      

create materialized view mv_teacher8
refresh fast [ with primary key] --     ,             
as 
select * from teacher

以上は、マテリアライズドインクリメンタルリフレッシュビューに関するいくつかの問題であり、後で追加されます.