개발용 메모장...

[DataBase]/[Oracle]

[Oracle] column 정보 조회

redeyesboy 2024. 8. 20. 14:45

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
;