DROP MATERIALIZED VIEW LOG

DROP MATERIALIZED VIEW LOG はマテリアライズド・ビュー・ログを削除するSQL文である。具体的には「MLOG$_元表の名前」という名前の表を削除する。

マテリアライズド・ビュー・ログとは、マテリアライズド・ビューの基となるマスター表への変更を格納するスキーマ・オブジェクトである。マテリアライズド・ビュー・ログは、マテリアライズド・ビューを高速リフレッシュするときに利用される。

マテビューを削除するときや、高速リフレッシュが不要になったときは、マテリアライズド・ビュー・ログを削除する。

SQL

DROP MATERIALIZED VIEW LOG の構文は次のとおり。

DROP MATERIALIZED VIEW LOG ON [schema.]table
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文には、次のものがある。

マテリアライズド・ビュー・ログに関する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パッケージには、次のものがある。

マテリアライズド・ビュー・ログに関するPL/SQLパッケージ
PL/SQLパッケージ 説明
DBMS_MVIEW マテリアライズド・ビューを操作するプロシージャやファンクションを含むパッケージ

マテリアライズド・ビュー・ログを削除すると、マテリアライズド・ビューを高速リフレッシュできなくなる。

SQL> EXEC DBMS_MVIEW.REFRESH('example', 'f')
ORA-23413: 表"TSUKA"."EMP"にはマテリアライズド・ビュー・ログはありません

SQL