RadarURL
Skip to content
조회 수 4312 추천 수 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. [Oracle] Lock 확인 및 Lock 해제

    Date2016.03.28 ByJAESOO Views2387
    Read More
  2. 오라클 실행 (sqlplus /nolog)

    Date2014.10.24 ByJAESOO Views2593
    Read More
  3. 오라클(Oracle) 테이블 스페이스 자동 증가

    Date2014.10.24 ByJAESOO Views3046
    Read More
  4. 오라클 테이블스페이스 용량 늘리기

    Date2014.10.24 ByJAESOO Views2513
    Read More
  5. 오라클(ORACLE) 테이블 스페이스 용량 늘리기

    Date2014.10.24 ByJAESOO Views3852
    Read More
  6. 오라클 테이블에서 컬럼의 데이터 타입 수정 방법

    Date2014.08.04 ByJAESOO Views4684
    Read More
  7. Oracle Data Type의 종류?

    Date2014.08.04 ByJAESOO Views2568
    Read More
  8. Single DB Admin Level 1 - Oracle Log 확인

    Date2014.07.22 ByJAESOO Views2918
    Read More
  9. 오라클 스케쥴러 사용법 및 개념 정리

    Date2014.07.22 ByJAESOO Views11834
    Read More
  10. Silent mode Oracle 11gr2 설치 - CentOS 5.5 x64, cloudn VM에서

    Date2014.06.24 ByJAESOO Views10118
    Read More
  11. 오라클 업데이트, 딜리트 쿼리 (oracle update, delete query)

    Date2014.04.19 ByJaeSoo Views4573
    Read More
  12. 오라클(Oracle) 제품종류 및 라이센스 정책 (10g 기준)

    Date2014.04.01 ByJaeSoo Views5616
    Read More
  13. 오라클 db 백업-(exp) 명령

    Date2014.03.25 ByJaeSoo Views2473
    Read More
  14. Oracle 리눅스에서 백업하는 방법

    Date2014.03.25 ByJaeSoo Views2935
    Read More
  15. Database 모든 테이블 컬럼 정보 받아오는 쿼리 [오라클]

    Date2014.02.08 ByJaeSoo Views4136
    Read More
  16. 테이블 정의서 (table layout) 출력하기 [오라클]

    Date2014.02.08 ByJaeSoo Views4312
    Read More
  17. 오라클(Oracle) 테이블스페이스(TableSpace) 정리

    Date2012.07.20 ByJaeSoo Views7764
    Read More
  18. Oracle 10g XE JDBC 연결하기

    Date2007.10.10 ByJaeSoo Views11741
    Read More
Board Pagination Prev 1 Next
/ 1

PageViews   Today : 225504 Yesterday : 401909 Total : 41874486  /  Counter Status   Today : 192707 Yesterday : 277022 Total : 12818546

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소