ここではORACLEデータベースでビュー(VIEW)の一覧や定義を確認するSQLを紹介しています。
ビューの作成や変更、削除については↓で紹介していますので参考にしてください。
>>【ORACLE】ビューを作成・更新・削除するSQL
ビューの一覧
ビューの一覧はDBA_VIEWSで取得することが出来ます。
DBA_VIEWSでは全てのビューの一覧を確認することが出来ます。
※現行ユーザーがアクセスできるシノニムのみを参照する場合はALL_SYNONYMSを参照します。
SELECT * FROM dba_views;
DBA_VIEWSの主な列は次の通りです。
・OWNER
ビューの所有者
・VIEW_NAME
ビューの名前
・TEXT_LENGTH
ビュー・テキストの長さ
・TEXT
ビューのテキスト。
・READ_ONLY
ビューが読取り専用の場合はY、そうだない場合はN
ビューの定義
ビューの定義もDBA_VIESで確認することが出来ます。
ビューの定義はDBA_VIEWSの「TEXT」列に登録してあるので、SELECTで取得します。
SELECT text FROM dba_views
WHERE owner = 'ユーザ名' AND view_name = 'ビューの名前';
マテリアライズドビューの一覧
マテリアライズドビューの一覧はDBA_MVIEWSで取得することが出来ます。
DBA_MVIEWSでは全てのマテリアライズドビューの一覧を確認することが出来ます。
※現行ユーザーがアクセスできるマテリアライズドビューのみを参照する場合はALL_MVIEWSを参照します。
SELECT * FROM DBA_MVIEWS;
DBA_MVIEWSの主な列の意味は次の通りです。
・OWNER
マテリアライズドビューが作成されたスキーマ
・MVIEW_NAME
マテリアライズドビューの名前
・CONTAINER_NAME
マテリアライズドビューのデータが保持されるコンテナ名
・QUERY
マテリアライズドビューの定義
・QUERY_LEN
定義の長さ(バイト)
・UPDATABLE
マテリアライズドビューが更新可能な場合はY、そうでない場合はN
・REWRITE_ENABLED
リライト可能な場合はY、そうでない場合はN
・REFRESH_MODE
リフレッシュモード
(1)DEMAND
スケジュールもしくは手動によるリフレッシュ
(2)COMMIT
テーブルへの更新がコミットされたとき、即時リフレッシュされる。
(3)NEVER
リフレッシュされない
・REFRESH_METHOD
リフレッシュ方法
(1)COMPLETE
完全リフレッシュされる。
(2)FORCE
可能な場合は高速リフレッシュ、そうでない場合、完全リフレッシュ
(3)FAST
増分リフレッシュが実行される。
(4)NEVER
リフレッシュされない
・LAST_REFRESH_DATE
マテリアライズドビューがリフレッシュされた最新の日付
まとめ
ビューの一覧はDBA_VIEWSで確認できます。
ビューの作成や更新、削除にはCREATE VIEW、 CREATE ANY VIEW、 DROP ANY VIEW権限が必要です。
また、マテリアライズドビューの作成や変更、削除には↓の権限が必要です。
作成:CREATE ANY MATERIALIZED VIEW
CREATE TABLEまたはCREATE ANY TABLE
変更:ALTER ANY MATERIALIZED VIEW
削除:DROP ANY MATERIALIZED VIEW
システム権限の付与の方法については↓で紹介していますので参考にしてください。
>>【ORACLE】システム権限を付与・取消するSQL