カレントスキーマの全テーブルの全カラムを一覧するSQL
次の情報も一緒に取得。
- カラムの型
- 主キーかどうか
- NOT NULL制約列かどうか
SELECT A.TABLE_NAME ,A.COLUMN_NAME ,A.COLUMN_ID ,A.DATA_TYPE ,A.DATA_LENGTH ,A.DATA_PRECISION ,A.DATA_SCALE ,SQ1.CONSTRAINT_TYPE /* ,CASE NVL(SQ1.CONSTRAINT_TYPE,'') WHEN 'P' THEN 1 ELSE 0 END PKEY */ ,A.NULLABLE /* ,CASE NVL(A.NULLABLE,'') WHEN 'N' THEN 1 ELSE 0 END NOTNULL */ FROM USER_TAB_COLUMNS A ,(SELECT B.TABLE_NAME ,B.COLUMN_NAME ,C.CONSTRAINT_TYPE FROM USER_CONS_COLUMNS B ,USER_CONSTRAINTS C WHERE B.OWNER = C.OWNER AND B.TABLE_NAME = C.TABLE_NAME AND B.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND C.CONSTRAINT_TYPE = 'P' ) SQ1 WHERE A.TABLE_NAME = SQ1.TABLE_NAME(+) AND A.COLUMN_NAME = SQ1.COLUMN_NAME(+) ORDER BY A.TABLE_NAME ,A.COLUMN_ID