ORACLEで、TABLEやVIEWなどの定義情報を見る方法
うろ覚えなので、あとでまた困らないようにメモ。
ORACLEで定義しているTABLEやVIEWやINDEXの情報を得るには、SYS.USER_TAB_COLUMNS, SYS.USER_VIEWS, SYS.USER_INDEXES, SYS.USER_IND_COLUMNSという、SYSにあるVIEWを覗くと良い。
USER_TAB_COLUMNS
テーブルの各項目に関する情報がある。テーブルだけでなく、VIEWの項目情報も含まれている。使いそうな項目は以下の通り
TABLE_NAME | テーブルの名前 |
COLUMN_NAME | 項目名 |
DATA_TYPE | 項目の型。VARCHAR2やNUMBERなど |
DATA_LENGTH | 項目長。文字項目の場合想定した値がそのまま入っている。NUMBER型の22固定。 |
DATA_PRECISION | 数値の精度(NUMBER(8,3)とかの8の部分) |
DATA_SCALE | 数値の小数部(NUMBER(8,3)とかの3の部分) |
NULLABLE | NULL値を許可するかどうか。NULLを許容する場合、Y |
COLUMN_ID | テーブル内での項目の位置 |
USER_INDEXES
インデックスの情報。どのテーブルにどのINDEXがあるか。
INDEX_NAME | INDEXの名称 |
TABLE_NAME | そのインデックスが定義されているテーブル名 |
UNIQUENESS | 一意制約の有無 |
USER_IND_COLUMNS
インデックス内の、個別の項目の情報。
INDEX_NAME | INDEXの名称 |
TABLE_NAME | そのインデックスが定義されているテーブル名 |
COLUMN_NAME | そのINDEXに含まれる項目の項目名 |
COLUMN_POSITION | そのINDEXのINDEX内での位置 |