RadarURL

조회 수 5779 추천 수 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. [공지] 공부 게시판 입니다.

    Date2003.08.18 By처누 Views2014824
    read more
  2. 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리

    Date2026.10.05 Category데이터베이스 By괴랄한재규어89 Views1
    Read More
  3. 흥신소 선택 가이드

    Date2026.10.05 Category데이터베이스 By흔들리는골렘32 Views2
    Read More
  4. 센텀르엘, 하이엔드 라이프의 새로운 기준

    Date2026.10.04 Category데이터베이스 By검은파편81 Views7
    Read More
  5. MariaDB my.cnf 설정 파일

    Date2026.03.03 Category데이터베이스 ByYooN Views3847
    Read More
  6. MariaDB 설정 파일 개요와 구조

    Date2026.03.03 Category데이터베이스 ByYooN Views9639
    Read More
  7. [오라클] RAC(Real Application Cluster)이란?

    Date2023.05.01 Category데이터베이스 ByYooN Views3333
    Read More
  8. 데이터베이스 튜닝 (DB Tuning)

    Date2023.04.27 Category데이터베이스 ByYooN Views4570
    Read More
  9. BCV (Business Continuance Volume)

    Date2023.04.14 Category데이터베이스 ByYooN Views3146
    Read More
  10. MySQL Dump / Import (덤프 / 임포트)

    Date2016.10.10 Category데이터베이스 ByYooN Views5485
    Read More
  11. mysql이 cpu를 많이 점유하고, DB와의 연결상태가 좋지 않을때

    Date2016.07.05 Category데이터베이스 ByYooN Views3318
    Read More
  12. [Oracle] Lock 확인 및 Lock 해제

    Date2016.03.28 Category데이터베이스 ByYooN Views4766
    Read More
  13. Mysql slow-query를 이용한 로그 분석

    Date2015.03.17 Category데이터베이스 ByYooN Views5643
    Read More
  14. Mysql 데몬 문제 해결 방안 (cpulimit)

    Date2015.03.17 Category데이터베이스 ByYooN Views5505
    Read More
  15. mysql 5.5.x my.cnf 참고

    Date2015.03.16 Category데이터베이스 ByYooN Views4973
    Read More
  16. Mysql Slow query log 등록

    Date2015.03.16 Category데이터베이스 ByYooN Views6173
    Read More
  17. MYSQL 성능 향상 정리

    Date2015.03.16 Category데이터베이스 ByYooN Views5082
    Read More
  18. MySQL Query Cache 사용법

    Date2015.03.16 Category데이터베이스 ByYooN Views5947
    Read More
  19. Mysql 에서 Got a packet bigger than 'max_allowed_packet' bytes 오류

    Date2014.12.25 Category데이터베이스 ByYooN Views5260
    Read More
  20. MySQL 내부 변수 max_allowed_packet

    Date2014.12.25 Category데이터베이스 ByYooN Views3503
    Read More
  21. Mysql binary log 정리, 삭제 주기 설정

    Date2014.11.17 Category데이터베이스 ByYooN Views7095
    Read More
Board Pagination Prev 1 2 3 4 5 Next
/ 5


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너