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) 임포트
댓글