테이블의 컬럼 내역 query
SELECT A.TABLE_NAME
, (SELECT COMMENTS
FROM ALL_TAB_COMMENTS
WHERE TABLE_NAME = A.TABLE_NAME
AND OWNER = :owner
) AS TABLE_COMMENT
, A.COLUMN_NAME
, (SELECT COMMENTS
FROM ALL_COL_COMMENTS
WHERE TABLE_NAME = A.TABLE_NAME
AND COLUMN_NAME = A.COLUMN_NAME
AND OWNER = :owner
) AS COLUMN_COMMENT
, (CASE WHEN C.COLUMN_NAME IS NOT NULL THEN 'PK'
ELSE ''
END
) AS PK
, A.DATA_TYPE
, A.DATA_LENGTH
, A.CHAR_LENGTH
, A.DATA_PRECISION
, A.DATA_SCALE
, A.NULLABLE
, A.COLUMN_ID
, A.DEFAULT_LENGTH
, A.DATA_DEFAULT
FROM ALL_TAB_COLUMNS A
LEFT OUTER JOIN ALL_CONSTRAINTS B
ON A.TABLE_NAME = B.TABLE_NAME
AND B.CONSTRAINT_TYPE = 'P'
AND A.OWNER = B.OWNER
LEFT OUTER JOIN ALL_IND_COLUMNS C
ON B.TABLE_NAME = C.TABLE_NAME
AND B.INDEX_NAME = C.INDEX_NAME
AND B.OWNER = C.TABLE_OWNER
AND A.COLUMN_NAME = C.COLUMN_NAME
WHERE A.TABLE_NAME = :tableName
AND A.OWNER = :owner
ORDER BY A.COLUMN_ID