【ORACLE】ビューやマテリアライズドビューの一覧や定義を確認するSQL


ここでは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