RadarURL
Skip to content
조회 수 2537 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

간단하게 테이블 정의서(table layout)를 쿼리로 출력한다.

TABLE_COMMENTS   (테이블 코멘트)
TABLE_NAME       (테이블명)
COLUMN_COMMENTS  (컬럼 코멘트)
COLUMN_NAME      (컬럼명)
PK_FLAG          (pk 여부)
FK_FLAG          (fk 여부)
NULL_FLAG        (null 여부)
DATA_TYPE        (테이터타입)
DATA_LENGTH      (데이터 길이)

SELECT A1.TABLE_COMMENTS TABLE_COMMENTS
     , A1.TABLE_NAME TABLE_NAME
     , A1.COLUMN_COMMENTS COLUMN_COMMENTS
     , A1.COLUMN_NAME COLUMN_NAME
     , (CASE
           WHEN B1.CONSTRAINT_TYPE = 'P'
              THEN 'Y'
        END) PK_FLAG
     , (CASE
           WHEN B1.CONSTRAINT_TYPE = 'R'
              THEN 'Y'
        END) FK_FLAG
     , A1.NULL_FLAG
     , A1.DATA_TYPE
     , A1.DATA_LENGTH
  FROM (SELECT B.COMMENTS TABLE_COMMENTS
             , A.TABLE_NAME TABLE_NAME
             , C.COMMENTS COLUMN_COMMENTS
             , A.COLUMN_NAME COLUMN_NAME
             , (CASE A.NULLABLE
                   WHEN 'Y'
                      THEN 'Y'
                END) NULL_FLAG
             , A.DATA_TYPE DATA_TYPE
             , (CASE
                   WHEN A.DATA_TYPE IN ('CHAR', 'VARCHAR2')
                      THEN '(' || A.DATA_LENGTH || ')'
                   WHEN A.DATA_TYPE = 'NUMBER'
                   AND A.DATA_SCALE = 0
                   AND A.DATA_PRECISION IS NOT NULL
                      THEN '(' || A.DATA_PRECISION || ')'
                   WHEN A.DATA_TYPE = 'NUMBER'
                   AND A.DATA_SCALE <> 0
                      THEN '(' || A.DATA_PRECISION || ',' || A.DATA_SCALE
                           || ')'
                END
               ) DATA_LENGTH

             , A.COLUMN_ID
          FROM USER_TAB_COLUMNS A
             , USER_TAB_COMMENTS B
             , USER_COL_COMMENTS C
         WHERE (A.TABLE_NAME = B.TABLE_NAME)
           AND (    A.TABLE_NAME = C.TABLE_NAME
                AND A.COLUMN_NAME = C.COLUMN_NAME
               )) A1
     , (SELECT A.TABLE_NAME
             , A.COLUMN_NAME
             , B.CONSTRAINT_TYPE
          FROM USER_CONS_COLUMNS A
             , USER_CONSTRAINTS B
         WHERE (A.CONSTRAINT_NAME = B.CONSTRAINT_NAME)
           AND B.CONSTRAINT_TYPE IN ('P', 'R')) B1
WHERE (    A1.TABLE_NAME = B1.TABLE_NAME(+)
        AND A1.COLUMN_NAME = B1.COLUMN_NAME(+))
ORDER BY A1.TABLE_NAME, A1.COLUMN_ID


'

-- ansi sql을 사용해서 아래와 같이 바꾸어 보았다.

SELECT   A1.TABLE_NAME TABLE_NAME
       , A1.TABLE_COMMENTS TABLE_COMMENTS
       , A1.COLUMN_NAME COLUMN_NAME
       , A1.COLUMN_COMMENTS COLUMN_COMMENTS
       , DECODE (B1.CONSTRAINT_TYPE, 'P', 'Y') PK_FLAG
       , DECODE (B1.CONSTRAINT_TYPE, 'R', 'Y') FK_FLAG
       , A1.NULL_FLAG
       , A1.DATA_TYPE
       , A1.DATA_LENGTH
FROM     (SELECT B.COMMENTS TABLE_COMMENTS
               , A.TABLE_NAME TABLE_NAME
               , C.COMMENTS COLUMN_COMMENTS
               , A.COLUMN_NAME COLUMN_NAME
               , DECODE (A.NULLABLE, 'Y', 'Y') NULL_FLAG
               , A.DATA_TYPE DATA_TYPE
               , (CASE
                     WHEN A.DATA_TYPE IN ('CHAR', 'VARCHAR2')
                        THEN '(' || A.DATA_LENGTH || ')'
                     WHEN A.DATA_TYPE = 'NUMBER'
                  AND    A.DATA_SCALE = 0
                  AND    A.DATA_PRECISION IS NOT NULL
                        THEN '(' || A.DATA_PRECISION || ')'
                     WHEN A.DATA_TYPE = 'NUMBER'
                  AND    A.DATA_SCALE <> 0
                        THEN '(' || A.DATA_PRECISION || ',' || A.DATA_SCALE || ')'
                  END
                 ) DATA_LENGTH
               , A.COLUMN_ID
          FROM   USER_TAB_COLUMNS A JOIN USER_TAB_COMMENTS B ON (A.TABLE_NAME = B.TABLE_NAME)
                 JOIN USER_COL_COMMENTS C ON (    A.TABLE_NAME = C.TABLE_NAME
                                              AND A.COLUMN_NAME = C.COLUMN_NAME)
                 ) A1
         LEFT JOIN
         (SELECT A.TABLE_NAME, A.COLUMN_NAME, B.CONSTRAINT_TYPE
          FROM   USER_CONS_COLUMNS A, USER_CONSTRAINTS B
          WHERE  (A.CONSTRAINT_NAME = B.CONSTRAINT_NAME)
          AND    B.CONSTRAINT_TYPE IN ('P', 'R')) B1
         ON (    A1.TABLE_NAME = B1.TABLE_NAME
             AND A1.COLUMN_NAME = B1.COLUMN_NAME)
ORDER BY A1.TABLE_NAME, A1.COLUMN_ID

 

출처 : http://www.seobangnim.com/zbxe/28808

?

  1. No Image 28Mar
    by JAESOO
    2016/03/28 by JAESOO
    Views 594 

    [Oracle] Lock 확인 및 Lock 해제

  2. No Image 24Oct
    by JAESOO
    2014/10/24 by JAESOO
    Views 1276 

    오라클 실행 (sqlplus /nolog)

  3. No Image 24Oct
    by JAESOO
    2014/10/24 by JAESOO
    Views 1023 

    오라클(Oracle) 테이블 스페이스 자동 증가

  4. No Image 24Oct
    by JAESOO
    2014/10/24 by JAESOO
    Views 1209 

    오라클 테이블스페이스 용량 늘리기

  5. No Image 24Oct
    by JAESOO
    2014/10/24 by JAESOO
    Views 1573 

    오라클(ORACLE) 테이블 스페이스 용량 늘리기

  6. No Image 04Aug
    by JAESOO
    2014/08/04 by JAESOO
    Views 1895 

    오라클 테이블에서 컬럼의 데이터 타입 수정 방법

  7. No Image 04Aug
    by JAESOO
    2014/08/04 by JAESOO
    Views 791 

    Oracle Data Type의 종류?

  8. No Image 22Jul
    by JAESOO
    2014/07/22 by JAESOO
    Views 1375 

    Single DB Admin Level 1 - Oracle Log 확인

  9. No Image 22Jul
    by JAESOO
    2014/07/22 by JAESOO
    Views 10198 

    오라클 스케쥴러 사용법 및 개념 정리

  10. No Image 24Jun
    by JAESOO
    2014/06/24 by JAESOO
    Views 8364 

    Silent mode Oracle 11gr2 설치 - CentOS 5.5 x64, cloudn VM에서

  11. No Image 19Apr
    by JaeSoo
    2014/04/19 by JaeSoo
    Views 1811 

    오라클 업데이트, 딜리트 쿼리 (oracle update, delete query)

  12. No Image 01Apr
    by JaeSoo
    2014/04/01 by JaeSoo
    Views 2874 

    오라클(Oracle) 제품종류 및 라이센스 정책 (10g 기준)

  13. No Image 25Mar
    by JaeSoo
    2014/03/25 by JaeSoo
    Views 911 

    오라클 db 백업-(exp) 명령

  14. No Image 25Mar
    by JaeSoo
    2014/03/25 by JaeSoo
    Views 1111 

    Oracle 리눅스에서 백업하는 방법

  15. No Image 08Feb
    by JaeSoo
    2014/02/08 by JaeSoo
    Views 1869 

    Database 모든 테이블 컬럼 정보 받아오는 쿼리 [오라클]

  16. No Image 08Feb
    by JaeSoo
    2014/02/08 by JaeSoo
    Views 2537 

    테이블 정의서 (table layout) 출력하기 [오라클]

  17. No Image 20Jul
    by JaeSoo
    2012/07/20 by JaeSoo
    Views 7405 

    오라클(Oracle) 테이블스페이스(TableSpace) 정리

  18. No Image 10Oct
    by JaeSoo
    2007/10/10 by JaeSoo
    Views 11397 

    Oracle 10g XE JDBC 연결하기

Board Pagination Prev 1 Next
/ 1

PageViews   Today : 5634 Yesterday : 5037 Total : 21961686  /  Counter Status   Today : 5451 Yesterday : 4602 Total : 1188174

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소