반응형
프로젝트 자주 쓰이게 될 테이블 정보 확인 쿼리입니다.
이것저것 볼거 없이, 한방 쿼리로 구성되어 있습니다. 도움이 되셨으면 좋겠습니다.
SELECT C.COLUMN_ID AS SEQ /* 테이블 컬럼 순서 */
,A.OWNER
,A.TABLE_NAME AS TABLE_ID /* 테이블 ID */
,B.COMMENTS AS TABLE_NM /* 테이블 명 */
,C.COLUMN_NAME AS COLUMN_ID /*컬럼 ID */
,D.COMMENTS AS COLUMN_NM /*컬럼 명 */
,C.DATA_TYPE /*컬럼 데이터 타입 */
,C.NULLABLE /*컬럼 필수여부 */
,C.DEFAULT_LENGTH AS LENGTH /*컬럼 길이 */
,C.DATA_DEFAULT /*컬럼 기본값 */
,CASE WHEN E.CONSTRAINT_NAME IS NOT NULL THEN 'Y' END AS PK /*컬럼 키 여부 */
FROM ALL_TABLES A
,ALL_TAB_COMMENTS B
,ALL_TAB_COLUMNS C
,ALL_COL_COMMENTS D
,(
SELECT A.OWNER, A.TABLE_NAME, A.CONSTRAINT_NAME, B.COLUMN_NAME
FROM DBA_CONSTRAINTS A
,ALL_CONS_COLUMNS B
WHERE 1=1
AND A.CONSTRAINT_TYPE='P'
AND A.OWNER = B.OWNER
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
) E
WHERE 1=1
AND A.OWNER = B.OWNER
AND A.TABLE_NAME = B.TABLE_NAME
AND B.OWNER = C.OWNER
AND B.TABLE_NAME = C.TABLE_NAME
AND C.OWNER = D.OWNER
AND C.TABLE_NAME = D.TABLE_NAME
AND C.COLUMN_NAME = D.COLUMN_NAME
AND D.OWNER = E.OWNER(+)
AND D.TABLE_NAME = E.TABLE_NAME(+)
AND D.COLUMN_NAME = E.COLUMN_NAME(+)
/* 조건 */
AND A.OWNER = 'C11' /* 사용자 */
AND A.TABLE_NAME = 'A1AT_SMS' /* 테이블 명 */
AND D.COMMENTS LIKE '주민' || '%' /* 컬럼 이름 */
AND C.COLUMN_NAME = 'BILL_SEND_YN' /* 컬럼ID */
ORDER BY C.COLUMN_ID
반응형