ALTER MATERIALIZED VIEW LOG はマテリアライズド・ビュー・ログを変更するSQL文である。
マテリアライズド・ビュー・ログとは、マテリアライズド・ビューの基となるマスター表への変更を格納するスキーマ・オブジェクトである。 マテリアライズド・ビュー・ログがある場合、マテリアライズド・ビュー・ログを使用してマテリアライズド・ビューがリフレッシュされる。これを増分リフレッシュまたは高速リフレッシュと呼ぶ。 マテリアライズド・ビューを高速リフレッシュするためには、マテリアライズド・ビュー・ログを作成する必要がある。
マテリアライズド・ビュー・ログの基となるマスター表に列を追加したとき、マテリアライズド・ビュー・ログにも自動的に列が追加されるわけではない。マスター表に列を追加したら、ALTER MATERIALIZED VIEW LOG でマテリアライズド・ビュー・ログにも列を明示的に追加する必要がある。
ALTER MATERIALIZED VIEW LOG ON schema.table ADD (columns)
自分が所有する表の場合は、スキーマ名の指定を省略できる。
カンマで区切って、複数の列を指定できる。
マテリアライズド・ビュー・ログに列を追加する。
ALTER MATERIALIZED VIEW LOG ON emp ADD (hiredate)
他人のスキーマ内にあるマテリアライズド・ビュー・ログに列を追加する。
ALTER MATERIALIZED VIEW LOG ON tsuka.emp ADD (hiredate)
更新DML操作で、新しい値と古い値の両方をマテリアライズド・ビュー・ログに保存する。
ALTER MATERIALIZED VIEW LOG ON schema.table ADD (columns) INCLUDING NEW VALUE
更新されるすべての行の主キー値をマテリアライズド・ビュー・ログに記録する。
ALTER MATERIALIZED VIEW LOG ON schema.table ADD PRIMARY KEY
更新されるすべての行のROWID値をマテリアライズド・ビュー・ログに記録する。
ALTER MATERIALIZED VIEW LOG ON schema.table ADD ROWID
マテリアライズド・ビュー・ログ表を他の表領域に移動する。
ALTER MATERIALIZED VIEW LOG ON schema.table MOVE TABLESPACE tablespace
マテリアライズド・ビュー・ログのセグメントを縮小化する。
ALTER MATERIALIZED VIEW LOG ON schema.table SHRINK SPACE
ALTER MATERIALIZED VIEW LOG文のADD句で指定したいずれかの項目が既にマテリアライズド・ビュー・ログに指定されている場合、エラーが戻される。
ALTER MATERIALIZED VIEW LOG文にFORCE句を指定すると、ADD句で指定したいずれかの項目が既にマテリアライズド・ビュー・ログに指定されていてもエラーを戻さず、既存の要素は無視され、マテリアライズド・ビュー・ログに存在しないすべての項目が追加される。
ALTER MATERIALIZED VIEW LOG FORCE ON emp ADD (hiredate)
自分のスキーマ内にある表に対するマテリアライズド・ビュー・ログを変更するには、とくに権限は必要ない。
他人のスキーマ内にある表に対するマテリアライズド・ビュー・ログを変更するには、その表に対する SELECT オブジェクト権限が必要である。
マテリアライズド・ビュー・ログに関するSQL文には、次のものがある。
SQL | 説明 |
---|---|
CREATE MATERIALIZED VIEW LOG | マテリアライズド・ビュー・ログを作成する。 |
ALTER MATERIALIZED VIEW LOG | マテリアライズド・ビュー・ログを変更する。 |
DROP MATERIALIZED VIEW LOG | マテリアライズド・ビュー・ログを削除する。 |
マテリアライズド・ビュー・ログに関するデータディクショナリ・ビューには次のものがある。
データディクショナリ・ビュー | 説明 |
---|---|
ALL_MVIEW_LOGS | 現在のユーザがアクセスできるマテリアライズド・ビュー・ログ |
DBA_MVIEW_LOGS | データベース内すべてのマテリアライズド・ビュー・ログ |
USER_MVIEW_LOGS | 現在のユーザが所有するマテリアライズド・ビュー・ログ |