DROP MATERIALIZED VIEW LOG はマテリアライズド・ビュー・ログを削除するSQL文である。具体的には「MLOG$_元表の名前」という名前の表を削除する。
マテリアライズド・ビュー・ログとは、マテリアライズド・ビューの基となるマスター表への変更を格納するスキーマ・オブジェクトである。マテリアライズド・ビュー・ログは、マテリアライズド・ビューを高速リフレッシュするときに利用される。
マテビューを削除するときや、高速リフレッシュが不要になったときは、マテリアライズド・ビュー・ログを削除する。
DROP MATERIALIZED VIEW LOG の構文は次のとおり。
DROP MATERIALIZED VIEW LOG ON [schema.]table
自分が所有するテーブル(表)に関連付けられたマテリアライズド・ビュー・ログを削除する。
DROP MATERIALIZED VIEW LOG ON emp
他人が所有するテーブル(表)に関連付けられたマテリアライズド・ビュー・ログを削除する。
DROP MATERIALIZED VIEW LOG ON tsuka.emp
自分が所有するテーブル(表)に関連付けられたマテリアライズド・ビュー・ログを削除するには、CREATE TABLE システム権限が必要である。
他人が所有するテーブル(表)に関連付けられたマテリアライズド・ビュー・ログを削除するには、DROP ANY TABLE システム権限が必要である。
システム権限 | 説明 |
---|---|
CREATE TABLE | 自分が所有する表に関連付けられたマテリアライズド・ビュー・ログを削除できる。 |
DROP ANY TABLE | 他人が所有する表に関連付けられたマテリアライズド・ビュー・ログを削除できる。 |
マテリアライズド・ビュー・ログに関するSQL文には、次のものがある。
SQL | 説明 |
---|---|
CREATE MATERIALIZED VIEW LOG | マテリアライズド・ビュー・ログを作成する。 |
ALTER MATERIALIZED VIEW LOG | マテリアライズド・ビュー・ログを変更する。 |
DROP MATERIALIZED VIEW LOG | マテリアライズド・ビュー・ログを削除する。 |
マテリアライズド・ビュー・ログに関するデータディクショナリ・ビューには、次のものがある。
データディクショナリ・ビュー | 説明 |
---|---|
ALL_MVIEW_LOGS | 現在のユーザがアクセスできるマテリアライズド・ビュー・ログ |
DBA_MVIEW_LOGS | Oracleデータベース内すべてのマテリアライズド・ビュー・ログ |
USER_MVIEW_LOGS | 現在のユーザが所有するマテリアライズド・ビュー・ログ |
次のSQL文を実行することで、自分が所有するマテリアライズド・ビュー・ログの一覧を確認できる。
SELECT MASTER, LOG_TABLE FROM USER_MVIEW_LOGS;
マテリアライズド・ビュー・ログに関するPL/SQLパッケージには、次のものがある。
PL/SQLパッケージ | 説明 |
---|---|
DBMS_MVIEW | マテリアライズド・ビューを操作するプロシージャやファンクションを含むパッケージ |
マテリアライズド・ビュー・ログを削除すると、マテリアライズド・ビューを高速リフレッシュできなくなる。
SQL> EXEC DBMS_MVIEW.REFRESH('example', 'f')
ORA-23413: 表"TSUKA"."EMP"にはマテリアライズド・ビュー・ログはありません