반응형
테이블 명세 확인하는 쿼리
SELECT C.OWNER
, A.TABLE_NAME
, REPLACE(REPLACE(D.COMMENTS,CHR(13),''),CHR(10),'') AS TAB_COMMENTS
-- , A.COLUMN_ID
, A.COLUMN_NAME
, REPLACE(REPLACE(B.COMMENTS,CHR(13),''),CHR(10),'') AS COL_COMMENTS
, A.DATA_TYPE ||
(CASE WHEN DATA_TYPE LIKE '%CHAR%'THEN
'(' || DATA_LENGTH || ')'
WHEN DATA_TYPE = 'NUMBER' AND DATA_PRECISION > 0 AND DATA_SCALE > 0 THEN
'(' || DATA_PRECISION || ',' || DATA_SCALE || ')'
WHEN DATA_TYPE = 'NUMBER' AND DATA_PRECISION > 0 THEN
'(' || DATA_PRECISION || ')'
END) DATA_TYPE
, CASE WHEN E.COLUMN_NAME IS NOT NULL THEN 'Y' ELSE 'N' END AS PK_YN
, DECODE(NULLABLE, 'N', 'N') NULLABLE
FROM ALL_ALL_TABLES C
LEFT JOIN ALL_TAB_COMMENTS D
ON C.OWNER = D.OWNER
AND C.TABLE_NAME = D.TABLE_NAME
INNER JOIN ALL_TAB_COLUMNS A
ON C.OWNER = A.OWNER
AND C.TABLE_NAME = A.TABLE_NAME
LEFT JOIN ALL_COL_COMMENTS B
ON A.OWNER = B.OWNER
AND A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME
LEFT JOIN (
SELECT A.OWNER
, A.TABLE_NAME
, A.CONSTRAINT_NAME
, B.COLUMN_NAME
, B.POSITION
FROM DBA_CONSTRAINTS A
INNER JOIN DBA_CONS_COLUMNS B
ON A.CONSTRAINT_TYPE = 'P'
AND A.OWNER = B.OWNER
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
) E
ON A.OWNER = E.OWNER
AND A.TABLE_NAME = E.TABLE_NAME
AND A.COLUMN_NAME = E.COLUMN_NAME
WHERE C.owner = '스키마'
하기 결과값처럼 나옴!
일하다 보면 상사분들이 가끔 테이블 명세좀 뽑아봐~
아니면 다른팀에서 요청들어올때 저 쿼리 사용하면 된다!
반응형
'DEV_STUDY > WEB_DEV' 카테고리의 다른 글
개발자툴| VS CODE 코드 비교 (0) | 2025.03.06 |
---|---|
오라클 | 디비버 스키마 물음표 숫자나올 때 해결방법 (0) | 2025.03.05 |
오라클 | 세션 확인 및 세션 킬 하는 방법 (0) | 2025.02.22 |
오라클 Mybatis | ORA-00926 Missing Values keyword에러 해결 (0) | 2025.02.22 |