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