MS949(euc-kr)에서 한글의 경우는 2byte를 사용하고


UTF-8로 변경시 한글은 3byte를 사용함.(ASCII 경우(영문,숫자)는 기존대로 1byte만 사용함)


 



** DBMS 변경시 관련 스크립트 작성 참조(작업전 백업은 필수!!)

   ORACLE, Tibero만 해당됨


 


1. 기존 DB에서(MS949) UTF-8 캐릭터셋 사이즈를 미리 조정한다.


   1-1. 스크립트 생성

        SELECT 'ATLER TABLE '|| table_name ||' MODIFY('|| LOWER(column_name) ||' VARCHAR2('|| LEAST(CEIL(data_length*1.5/10) * 10, 4000) ||'));' AS sqltext

        FROM USER_TAB_COLUMNS

        WHERE data_type LIKE 'VARCHAR%'

        AND data_length > 1

        AND data_length < 4000;


   1-2. 작성된 스크립트 확인

        > 숫자 또는 영문자만 들어가는 필드는 제외한다.

          예) VARCHAR2 형식으로 저장되는 날짜형식등


        > 시스템 관련 테이블의 컬럼은 제외

          예) SYS_XXXXX


   1-3. 작성된(1-1) 스크립트 내용을 기존(MS949)에 적용함




2. 사이즈가 변경된 기존(MS949) DB를 백업한다.



3. 백업한 기존(MS949) DB를 이관할 DB(UTF-8)에 임포트한다.


 


순서정리 : 기존DB 사이즈 조정 스크립트 작성 > 필요없는 컬럼 제외 > 다시 기존 DB에 스크립 적용 > 기존 DB 백업 > 신규 DB(UTF-8) 임포트

블로그 이미지

유효하지않음

,