Oracle에서 테이블의 컬럼 정보를 조회 하는 쿼리는 아래와 같다.
해당 쿼리는 대상 테이블의 테이블명, 컬럼순서, 컬럼명, 컬럼주석, 데이터타입, 널여부, 디폴트값을 조회하는 Query이다.
SELECT T1.TABLE_NAME
, T1.COLUMN_ID
, T1.COLUMN_NAME
, T2.COMMENTS AS COLUMN_COMMENTS
, (
CASE
WHEN T1.DATA_TYPE IN ( 'CHAR', 'VARCHAR2' ) THEN T1.DATA_TYPE || '(' || T1.DATA_LENGTH || ')'
WHEN T1.DATA_TYPE IN ( 'NUMBER' ) THEN T1.DATA_TYPE || '(' || T1.DATA_PRECISION || ',' || T1.DATA_SCALE || ')'
ELSE T1.DATA_TYPE
END
) AS DATA_TYPE
, (
CASE
WHEN T1.NULLABLE = 'N' THEN 'N-N'
ELSE 'NULL'
END
) AS IS_NULLABLE
, T1.DATA_DEFAULT AS COLUMN_DEFAULT
FROM ALL_TAB_COLUMNS T1
INNER JOIN ALL_COL_COMMENTS T2 ON T1.OWNER = T2.OWNER AND T1.TABLE_NAME = T2.TABLE_NAME AND T1.COLUMN_NAME = T2.COLUMN_NAME
WHERE T1.OWNER = '스키마명'
AND T1.TABLE_NAME = '테이블명'
ORDER BY T1.COLUMN_ID ASC
;