IT/기타
Oracle 테이블 컬럼 정보 조회 쿼리(컬럼명, PK, FK, Nullable)
twofootdog
2020. 11. 20. 11:20
프로젝트 진행 시 분석/설계를 진행할 때 기존에 등록되어 있는 Oracle 테이블 컬럼정보를 조회하는 경우가 많다(예를 들면 컬럼 물리명/논리명, PK, FK, Nullable, Data 기본값 등등)
그래서 해당 내용을 기억하기 위해 아래와 같이 컬럼 정보 조회 쿼리를 정리해 보았다.
SELECT AA.COLUMN_ID,
AA.COLUMN_NAME,
BB.COMMENTS,
AA.DATA_TYPE,
AA.DATA_LENGTH,
AA.DATA_DEFAULT,
CC.PK,
AA.NULLABLE,
CC.FK
FROM ALL_TAB_COLUMNS AA,
ALL_COL_COMMENTS BB,
(SELECT A.OWNER,
A.TABLE_NAME,
A.CONSTRAINT_TYPE,
COLUMN_NAME,
POSITION,
CASE WHEN A.CONSTRAINT_TYPE = 'P' THEN 'Y' END AS PK,
CASE WHEN A.CONSTRAINT_TYPE = 'R' THEN 'Y' END AS FK
FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B
WHERE UPPER (A.OWNER) = UPPER ('테이블유저명')
AND A.TABLE_NAME = UPPER ('테이블명')
AND A.TABLE_NAME = B.TABLE_NAME
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
AND A.CONSTRAINT_TYPE IN ('P', 'F')) CC
WHERE UPPER (AA.OWNER) = UPPER ('테이블유저명')
AND UPPER (AA.TABLE_NAME) = UPPER ('테이블명')
AND AA.OWNER = BB.OWNER
AND AA.TABLE_NAME = BB.TABLE_NAME
AND AA.COLUMN_NAME = BB.COLUMN_NAME
AND AA.OWNER = CC.OWNER(+)
AND AA.TABLE_NAME = CC.TABLE_NAME(+)
AND AA.COLUMN_NAME = CC.COLUMN_NAME(+)
ORDER BY COLUMN_ID
참고