SELECT
BB.OWNER AS OWNER
,BB.TABLE_NAME AS TABLE_ID
,GG.COMMENTS AS TABLE_NAME
,BB.COLUMN_ID+1 AS COLUMN_NO
,BB.COLUMN_NAME AS COLUMN_ID
,AA.COMMENTS AS COLUMM_NAME
,BB.DATA_TYPE AS DATA_TYPE
,DECODE(BB.DATA_TYPE, 'NUMBER', BB.DATA_PRECISION, BB.DATA_LENGTH) AS DATA_LENGTH
,BB.DATA_SCALE AS DATA_SCALE
,DECODE(CC.COLUMN_NAME, '', '', 'Y') AS PK
,DECODE(BB.NULLABLE, 'Y', '', 'Y') AS NULLABLE
,BB.DATA_DEFAULT AS DEFAULT_VALUE
,SUBSTR(EE.CONSTRAINT_NAME, 12, 7) AS FK_ID
,FF.TABLESPACE_NAME AS TS_NAME
,FF.NUM_ROWS AS ROW_CNT
,DD.CREATED AS CRE_DATE
,DD.LAST_DDL_TIME AS UPT_DATE
FROM ( SELECT * FROM ALL_COL_COMMENTS ) AA,
( SELECT * FROM ALL_TAB_COLUMNS ) BB,
( SELECT * FROM ALL_CONS_COLUMNS WHERE CONSTRAINT_NAME LIKE 'PK%') CC,
( SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = '계정명' ) DD,
( SELECT * FROM ALL_CONS_COLUMNS WHERE CONSTRAINT_NAME LIKE 'FK%') EE,
( SELECT * FROM ALL_TABLES WHERE OWNER = '계정명') FF,
( SELECT * FROM ALL_TAB_COMMENTS WHERE OWNER = '계정명') GG
WHERE 1=1
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(+)
AND AA.OWNER = DD.OWNER
AND AA.TABLE_NAME = DD.OBJECT_NAME
AND AA.OWNER = EE.OWNER(+)
AND AA.TABLE_NAME = EE.TABLE_NAME(+)
AND AA.COLUMN_NAME = EE.COLUMN_NAME(+)
AND AA.TABLE_NAME = FF.TABLE_NAME(+)
AND AA.TABLE_NAME = GG.TABLE_NAME(+)
-- AND SUBSTR(AA.TABLE_NAME,0,2) = '구분자' <-- 테이블이 많을시에 구분 조건
AND AA.TABLE_NAME LIKE '테이블 명'
ORDER BY AA.TABLE_NAME, BB.COLUMN_ID