[Oracle] KO16MSWIN949 vs AL32UTF8

728x90

KO16MSWIN949 vs AL32UTF8

항목
KO16MSWIN949
AL32UTF8
인코딩 계열
단일/이중바이트 가변(MBCS)
표준 UTF-8 가변(1-4 bytes)
표현 가능 문자
한글 음절 11,172 + 일부 한자/기호
전 범위 유니코드(한글 음절 11,172 포함)
다국어 지원
미지원
지원
ASCII 크기
1 Byte
1 Byte
한글 크기
2 Bytes
3 Bytes
한자 크기
2 Bytes
3 Bytes
이모지 크기
표현 불가
4 Bytes
(예시) 유니코드 한글 음절 11,172개 중 일부
 

문자 유형별 Byte 크기 예시

문자열 KO16MSWIN949 AL32UTF8 비고
A, 1, #
1 Byte
1 Byte
ASCII
é
표현 불가
2 Bytes
악센트 라틴
2 Bytes
3 Bytes
한글 음절
2 Bytes
3 Bytes
한자(일부 한자는 KO16MSWIN949에 없음)
😊
표현 불가
4 Bytes
이모지
참고로, Oracle 19c에서는 AL32UTF8의 사용을 권장하고 있습니다.

AL32UTF8로 Datapump 이관 시 고려 사항

(Oracle 19c에서는 AL32UTF8을 기본적으로 권장하고 있습니다)
KO16MSWIN949 → AL32UTF8 이관 시, 한글 1자 = 3 Bytes로 1.5배 증가함에 따라 아래 요소 점검 필요
  • AS-IS DB의 스키마 명, 패스워드가 ASCII 코드(영문/숫자/특수문자)로 이루어졌는지 점검
    → 이관 이후 스키마 명이 30 Bytes를 초과하면 안됨
    → 스키마 명, 패스워드는 byte 크기 변경 시 사용 불가(재생성 필요)
  • VARCHAR2 컬럼 길이에 대한 한도 점검
    → 이관 이후 데이터 크기가 컬림 길이를 넘을 시 데이터가 잘리거나 ORA-12899(행 거절) 발생
  • 한글 데이터가 포함된 CHAR 컬럼의 존재 여부 점검
    → 공백이 포함된 CHAR 컬럼(고정 길이) 데이터의 경우, 공백을 포함해 크기가 확장되므로 길이 초과로 인한 ORA-12899(행 거절) 에러 발생
  • 데이터의 한글 비중이 높은 인덱스 키 byte 한도 점검
    → 인덱스 키 최대 길이는 DB 블록 크기에 의존하며, 8K 블록의 경우 대략 최대 6400 Byte
    → 최대 길이 초과 시 인덱스 생성 과정에서 ORA-01450(최대 키 길이 초과) 에러 발생

🔹자세한 사항은 하기 오라클 공식 문서를 참고 바랍니다.
https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/character-set-migration.html?utm_source=chatgpt.com

 

 
728x90