테이블정의서 자동으로 만들어주는 오라클 쿼리입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | SELECT A.TABLE_NAME AS "테이블명", A.COLUMN_NAME AS "컬럼명", A.DATA_TYPE AS "데이터타입", A.DATA_LENGTH AS "길이", A.NULLABLE AS "Null 여부", B.COMMENTS AS "Comments" FROM dba_tab_columns A, all_col_comments B WHERE A.OWNER = B.OWNER AND A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME AND A.OWNER = 'LOTOSDEV' -- DB명 ORDER BY A.TABLE_NAME | cs |
이거 실행하고 엑셀로 저장하면 됩니다.
아래는 PK(Primary Key)까지 추가된 쿼리입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | WITH LIST AS ( SELECT A.TABLE_NAME, A.COLUMN_NAME, A.DATA_TYPE, A.DATA_LENGTH, A.NULLABLE, B.COMMENTS FROM dba_tab_columns A, all_col_comments B WHERE A.OWNER = B.OWNER AND A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME AND A.OWNER = 'LOTOSDEV' -- DB명 ), PKLIST AS ( SELECT C.TABLE_NAME, C.COLUMN_NAME, C.POSITION FROM USER_CONS_COLUMNS C, USER_CONSTRAINTS S WHERE C.CONSTRAINT_NAME = S.CONSTRAINT_NAME AND S.CONSTRAINT_TYPE = 'P' ) SELECT L.TABLE_NAME AS "테이블명", L.COLUMN_NAME AS "컬럼명", L.DATA_TYPE AS "데이터타입", L.DATA_LENGTH AS "길이", CASE WHEN P.POSITION < 99 THEN 'Y' ELSE ' ' END AS "PK", L.NULLABLE AS "Null 여부", L.COMMENTS AS "Comments" FROM LIST L, PKLIST P WHERE L.TABLE_NAME = P.TABLE_NAME(+) AND L.COLUMN_NAME = P.COLUMN_NAME(+) ORDER BY L.TABLE_NAME, NVL(P.POSITION, 99) ; | cs |
이 쿼리를 실행하면 아래처럼 PK 여부도 추가됩니다.
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
[오라클] Oracle에서 모든 테이블 목록 가져오는 쿼리 (0) | 2017.05.22 |
---|---|
[오라클] PK(Primary Key)만 가져오는 Oracle 쿼리 (0) | 2017.05.12 |
[MySQL] join 후 원하는 컬럼 update 하는 방법 (0) | 2017.02.26 |
까페24(cafe24.com)의 호스팅 DB를 외부에서 DB툴로 접속하는 방법 (0) | 2017.01.09 |
[오라클] trunc(SYSDATE)로 시분초가 0인 날짜만 가져오기 (0) | 2016.12.06 |
댓글