질의작성

ORACLE 테이블 및 컬럼 COMMENT 일광등록 스크립트

by 김창휘 posted Apr 04, 2016

CUBRID의 경우 오라클 DB와 다른 형태로 테이블 및 컬럼 COMMENT를 관리하고 있다.


CUBRID에서 제공하는 CMT에서는 테이블 및 컬럼 COMMENT를 변환을 아직까지는 지원하지 않고 있다.


CM을 통해 테이블 단위로 메뉴얼로 등록할 수 있지만 평균 수백게 이상의 테이블이 존재하기에 일괄 등록할 수있는 스크립트를 만들어서 등록하도록 한다. 


해당 SQL은 오라클에서 수행하며 생성된 쿼리를 큐브리드에서 수행하면 된다.


1. 테이블 COMMENT 등록 SQL 생성 스크립트


SELECT 


    A.TABLE_NAME


    , B.COMMENTS

    , 'INSERT INTO _CUB_SCHEMA_COMMENTS VALUES ('''||lower(A.TABLE_NAME)||''','||'''*'''||','''||B.COMMENTS||''','||'SYSDATETIME'||','||'''DBA'''||');'

FROM   user_TABLES A


        , ALL_TAB_COMMENTS B

WHERE  A.TABLE_NAME = B.TABLE_NAME

and a.TABLE_NAME in (select table_name 

                              from user_tables 

                              where table_name like 'TC_%' or table_name like 'TH_%' or table_name like 'TN_%'

                              or table_name like 'TS_%')

ORDER BY A.TABLE_NAME;


--> 해당 쿼리도 행성된 INSERT 구문

     INSERT INTO _CUB_SCHEMA_COMMENTS VALUES ('ts_pubr_prcuse_reqst_stats','*','활용_신청_통계',SYSDATETIME,'DBA');

2. 컬럼 COMMENT 등록 SQL 생성 스크립트

SELECT T.TABLE_NAME,T.COLUMN_NAME AS PHYSICAL_NAME,

         C.COMMENTS AS LOGICAL_NAME,

         T.DATA_TYPE AS TYPE,

         CASE

            WHEN T.DATA_TYPE = 'NUMBER' THEN T.DATA_PRECISION

            ELSE CASE WHEN T.CHAR_LENGTH != 0 THEN T.CHAR_LENGTH ELSE NULL END

         END

            AS LENGTH,

         T.DATA_SCALE,

         T.DATA_DEFAULT,

         T.NULLABLE,
         
         'INSERT INTO _CUB_SCHEMA_COMMENTS VALUES ('''||lower(T.TABLE_NAME)||''','''||lower(T.COLUMN_NAME)||''','''||C.COMMENTS||''','||'SYSDATETIME'||','||'''DBA'''||');'

    FROM USER_TAB_COLUMNS T, USER_COL_COMMENTS C

   WHERE     T.TABLE_NAME = C.TABLE_NAME

         AND T.COLUMN_NAME = C.COLUMN_NAME

         AND T.TABLE_NAME in (select table_name 
                              from user_tables 
                              where table_name like 'TC_%' or table_name like 'TH_%' or table_name like 'TN_%'
                              or table_name like 'TS_%')

ORDER BY T.TABLE_NAME,T.COLUMN_ID  ASC;

--> 해당 쿼리도 행성된 INSERT 구문

   INSERT INTO _CUB_SCHEMA_COMMENTS VALUES ('tc_brm_cd_systm','brm_cd','BRM_코드',SYSDATETIME,'DBA');



Articles

1 2 3 4 5 6 7 8 9 10