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と同じである。
オラクル・データベースのデータ・ディクショナリ・ビューには次のものがある。