반응형

데이터 이관작업은 별로 많지는 않지만...

어제 exp 백업시 tablespace 단위로 이동하게 작업을 했다...

comment 부분이 이관이 정상적으로 되지 않았다.

comments 부분은 저장되는게 아래 쿼리와 같다...

  SELECT   o.name, c.name, co.comment$
     FROM   sys.obj$ o, sys.col$ c, sys.com$ co
    WHERE       o.owner# = USERENV ('SCHEMAID')
            AND o.type# IN (2, 4)
            AND o.obj# = c.obj#
            AND c.obj# = co.obj#(+)
            AND c.intcol# = co.col#(+)
            AND BITAND (c.property, 32) = 0

자 이 정보를 이관하려면

COMMENT ON TABLE ~ 명령을 사용 하면 아주 쉬워진다.

1. 테이블 comment 정보 이관하기 반드시 NULL이 없는것을 기준으로 한다 ~

SELECT
    'COMMENT ON TABLE '
    || TABLE_NAME
    || ' IS '
    || ''''
    || COMMENTS
    || ''';'
 FROM USER_TAB_COMMENTS
WHERE COMMENTS IS NOT NULL;

2.  컬럼 comment 정보 이관하기 위해서도 역시 반드시 NULL이 없는 데이터를 기준으로 합니다. ~

SELECT
    'COMMENT ON COLUMN '
    || TABLE_NAME
    || '.'
    || COLUMN_NAME
    || ' IS '
    || ''''
    || COMMENTS   
    || ''';'
 FROM USER_COL_COMMENTS WHERE COMMENTS IS NOT NULL;   
반응형
반응형

DESC school 와 같은 행태로 테이블을 조회 했을 때, 주석문이 등록되지 않아 출력이 되지 않는 경우가 있다.

알아보기 쉬운 테이블 생성을 위해서는 반드시 주석문을 추가하는것이 좋다.

 

테이블에 주석문 추가하기

COMMENT ON TABLE school IS '학교정보 테이블' ;


컬럼에 주석문 추가하기

COMMENT ON TABLE school COLUMN school.name IS '학교이름';


주석문 삭제하기

COMMENT ON TABLE school IS ' '


주석문을 볼수있는 data dictionary

dictionary 상에 정보 조회를 통해 현재 comment(주석)이 등록 되어 있는지 확인 가능하다.

 * Column

ALL_COL_COMMENTS
USER_COL_COMMENTS

* Table

ALL_TAB_COMMENTS
USER_TAB_COMMENTS




반응형

+ Recent posts