select USER_CONS_COLUMNS.OWNER ,USER_CONS_COLUMNS.TABLE_NAME ,USER_CONS_COLUMNS.COLUMN_NAME ,USER_TAB_COLUMNS.DATA_TYPE ,USER_TAB_COLUMNS.DATA_LENGTH from USER_CONS_COLUMNS left join USER_TAB_COLUMNS on USER_CONS_COLUMNS.COLUMN_NAME = USER_TAB_COLUMNS.COLUMN_NAME inner join USER_CONSTRAINTS on USER_CONS_COLUMNS.CONSTRAINT_NAME = USER_CONSTRAINTS.CONSTRAINT_NAME and USER_CONSTRAINTS.CONSTRAINT_TYPE = 'P' where 1=1 order by 1,2,3
以下、使用しているディクショナリ・ビューの概要。
USER_CONSTRAINTS
CONSTRAINT_NAME(制約名)はあるが、カラム名が無い。
CONSTRAINT_TYPE = 'P' が主キー。
その他の CONSTRAINT_TYPEで表示される制約定義の種類。
- C - 表でのチェック制約
- P - 主キー
- U - 一意のキー
- R - 参照整合性
- V - ビューでのチェック・オプション付き
- O - ビューで読取り専用
- H - ハッシュ式
- F - REF列を含む制約
- S - サプリメンタル・ロギング
USER_CONS_COLUMNS
現行のユーザーが所有していて、制約定義に指定されている列を示す。
USER_TAB_COLUMNS
現行のユーザーが所有する表。