ALL_VIEWS, DBA_VIEWS, USER_VIEWSはOracleのビューに関する情報を格納しているデータディクショナリビューです。この記事では、構造や格納されている情報についてご紹介します。
ALL_VIEWSは、現在のユーザがアクセスできるビューを示すデータディクショナリビューである。
| 列 | 説明 |
|---|---|
| OWNER | ビューの所有者 |
| VIEW_NAME | ビューの名前 |
| TEXT_LENGTH | ビューテキストの長さ |
| TEXT | ビューテキスト |
| TYPE_TEXT_LENGTH | 特定の型のビューのタイプの長さ |
| TYPE_TEXT | 特定の型のビューのタイプ |
| OID_TEXT_LENGTH | 特定の型のビューのWITH OID句の長さ |
| OID_TEXT | 特定の型のビューのWITH OID句 |
| VIEW_TYPE_OWNER | ビューの型の所有者(特定の型のビューの場合) |
| VIEW_TYPE | ビューの型(特定の型のビューの場合) |
| SUPERVIEW_NAME | スーパービューの名前 |
| READ_ONLY | ビューが読み取り専用かどうか(Y/N) |
OWNER列にはビューの所有者が格納されている。所有者とは、すなわちスキーマである。
SELECT * FROM DBA_VIEWS WHERE OWNER = 'MARINA'
VIEW_NAME列にはビューの名前が格納されている。
SELECT * FROM USER_VIEWS WHERE VIEW_NAME = 'EXAMPLE'
TEXT列にはビューを定義する問合せが格納されている。
SELECT TEXT FROM ALL_VIEWS WHERE VIEW_NAME = 'EXAMPLE'
TEXT列のデータ型はLONGであるため、SELECT文のWHERE句の条件に指定できない。したがって、次のSQLはエラーになる。
SELECT * FROM DBA_VIEWS WHERE TEXT LIKE '%DBLINK%'
DBA_VIEWSは、データベース内のすべてのビューを示すデータディクショナリビューである。
DBA_VIEWSの構造は、ALL_VIEWSと同じである。
USER_VIEWSは、現在のユーザが所有するビューを示す。データディクショナリビューである。
USER_VIEWSの構造は、OWNER列が無いことを除き、ALL_VIEWSやDBA_VIEWSと同じである。
オラクル・データベースのデータ・ディクショナリ・ビューには次のものがある。