DBA 뷰끼리 조인을 하려고 합니다. 0 2 910

by psychomem [Oracle 기초] DBA TABLE_NAME COMMENT [2018.08.28 15:27:04]


안녕하세요 음... 일단 작업하고자 하는 내역은

OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, COMMENT(NULLABLE)

의 내역을 전부 뽑아내고자 함 입니다.

 

SELECT
  a.OWNER
  , a.TABLE_NAME
  , a.COLUMN_NAME
  , a.DATA_TYPE
  , b.COMMENT
FROM 
  DBA_TAB_COLS a
  , DBA_COL_COMMENTS b
WHERE
  a.COLUMN_NAME = b.COLUMN_NAME
AND
  a.OWNER IN('SYSDBA', 'SYS', 'AAA')
ORDER BY 1;

위와같은 쿼리문으로 출력을 해 보았으나

중복된 정보가 출력되는것을 확인 하였습니다.

가령 예를 들자면,

OWNER가 AAA인 테이블 ANNIVERSARY에 대해 TITLE이라는 칼럼이

DATA_TYPE 'VARCHAR'로 COMMENT는 제목, 특정인, 태그 및 NULL까지 다양하게 나옵니다.

같은 칼럼에 NUMBER도 있으며, CHAR도 존재하는것이 보입니다. 헌데,

SELECT
 OWNER
 TABLE_NAME
 COLUMN_NAME
 COMMENT
FROM 
 DBA_COL_COMMENTS
WHERE
  a.OWNER IN('SYSDBA', 'SYS', 'AAA')
ORDER BY 1;

위와 같이 단독뷰에서만 봤을때는 리스트가 정상적으로 1개 칼럼이 조회되는데,

음... 조인에 대한 개념이 부족해서 그런걸까요?

두번째 쿼리문에서 DATA_TYPE만 들어가면 되는데, 혹시 어떤식으로 조인해야 할지 문의 드립니다.

감사합니다.

by 임상준 [2018.08.28 15:30:02]

네,, owner 랑 table name 까지 조인 조건에 한번 포함시켜보세요


by 우리집아찌 [2018.08.28 15:33:17]
 SELECT a.OWNER
      , a.TABLE_NAME
      , a.COLUMN_NAME
      , a.DATA_TYPE
      , b.COMMENTS
   FROM DBA_TAB_COLS a
      , DBA_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 IN('SCOTT')
  ORDER BY 1 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입