ALTER MATERIALIZED VIEW LOG

ALTER MATERIALIZED VIEW LOG はマテリアライズド・ビュー・ログを変更するSQL文である。

マテリアライズド・ビュー・ログとは、マテリアライズド・ビューの基となるマスター表への変更を格納するスキーマ・オブジェクトである。 マテリアライズド・ビュー・ログがある場合、マテリアライズド・ビュー・ログを使用してマテリアライズド・ビューがリフレッシュされる。これを増分リフレッシュまたは高速リフレッシュと呼ぶ。 マテリアライズド・ビューを高速リフレッシュするためには、マテリアライズド・ビュー・ログを作成する必要がある。

列の追加

マテリアライズド・ビュー・ログの基となるマスター表に列を追加したとき、マテリアライズド・ビュー・ログにも自動的に列が追加されるわけではない。マスター表に列を追加したら、ALTER MATERIALIZED VIEW LOG でマテリアライズド・ビュー・ログにも列を明示的に追加する必要がある。

ALTER MATERIALIZED VIEW LOG ON schema.table ADD (columns)
schema
表が存在するスキーマ

自分が所有する表の場合は、スキーマ名の指定を省略できる。

table
マテリアライズド・ビュー・ログの対象となる表
columns
追加する列

カンマで区切って、複数の列を指定できる。

マテリアライズド・ビュー・ログに列を追加する。

ALTER MATERIALIZED VIEW LOG ON emp ADD (hiredate)

他人のスキーマ内にあるマテリアライズド・ビュー・ログに列を追加する。

ALTER MATERIALIZED VIEW LOG ON tsuka.emp ADD (hiredate)

INCLUDING NEW VALUE

更新DML操作で、新しい値と古い値の両方をマテリアライズド・ビュー・ログに保存する。

ALTER MATERIALIZED VIEW LOG ON schema.table ADD (columns) INCLUDING NEW VALUE

主キーの追加

更新されるすべての行の主キー値をマテリアライズド・ビュー・ログに記録する。

ALTER MATERIALIZED VIEW LOG ON schema.table ADD PRIMARY KEY

ROWIDの追加

更新されるすべての行のROWID値をマテリアライズド・ビュー・ログに記録する。

ALTER MATERIALIZED VIEW LOG ON schema.table ADD ROWID

表領域の移動

マテリアライズド・ビュー・ログ表を他の表領域に移動する。

ALTER MATERIALIZED VIEW LOG ON schema.table MOVE TABLESPACE tablespace
tablespace
移動先の表領域

セグメントの縮小化

マテリアライズド・ビュー・ログのセグメントを縮小化する。

ALTER MATERIALIZED VIEW LOG ON schema.table SHRINK SPACE

FORCE

ALTER MATERIALIZED VIEW LOG文のADD句で指定したいずれかの項目が既にマテリアライズド・ビュー・ログに指定されている場合、エラーが戻される。

ALTER MATERIALIZED VIEW LOG文にFORCE句を指定すると、ADD句で指定したいずれかの項目が既にマテリアライズド・ビュー・ログに指定されていてもエラーを戻さず、既存の要素は無視され、マテリアライズド・ビュー・ログに存在しないすべての項目が追加される。

ALTER MATERIALIZED VIEW LOG FORCE ON emp ADD (hiredate)

権限

自分のスキーマ内にある表に対するマテリアライズド・ビュー・ログを変更するには、とくに権限は必要ない。

他人のスキーマ内にある表に対するマテリアライズド・ビュー・ログを変更するには、その表に対する SELECT オブジェクト権限が必要である。

マテリアライズド・ビュー・ログに関するSQL

マテリアライズド・ビュー・ログに関するSQL文には、次のものがある。

マテリアライズド・ビュー・ログに関するSQL
SQL 説明
CREATE MATERIALIZED VIEW LOG マテリアライズド・ビュー・ログを作成する。
ALTER MATERIALIZED VIEW LOG マテリアライズド・ビュー・ログを変更する。
DROP MATERIALIZED VIEW LOG マテリアライズド・ビュー・ログを削除する。

マテリアライズド・ビュー・ログに関するデータディクショナリ・ビュー

マテリアライズド・ビュー・ログに関するデータディクショナリ・ビューには次のものがある。

マテリアライズド・ビュー・ログに関するデータディクショナリ・ビュー
データディクショナリ・ビュー 説明
ALL_MVIEW_LOGS 現在のユーザがアクセスできるマテリアライズド・ビュー・ログ
DBA_MVIEW_LOGS データベース内すべてのマテリアライズド・ビュー・ログ
USER_MVIEW_LOGS 現在のユーザが所有するマテリアライズド・ビュー・ログ

SQL