반응형

(“US7ASCII”는 Unicode 계열은 아니나 UTF8의 subset 개념으로 포함시켜 표현하였다.)
Oracle Character Set을 올바르게 설정하기 위해서는 간단하게 다음 둘 중에 하나를 선택하면 된다.
시스템 유형 | 권장 Character Set | 설명 |
대한민국에서만 사용되는 시스템 | KO16MSWIN949 | – 한글 Windows에서 한글IME를 통해 입력할 수 있는 문자는 모두 지원 가능(한글, 한자, 영문, 숫자 등) – 한글과 한자는 2 byte로 저장되고, 영문과 숫자는 1 byte로 저장됨. |
다국어 문자를 저장해야 하는 시스템 | AL32UTF8 | – AL32UTF8은 최신 Unicode에서 추가되고 있는 문자들도 모두 지원 가능함(중국 한자, 서유럽 문자, 동남아 문자 등) – 영문과 숫자는 1 byte로 저장되고, 나머지 문자들은 대부분 3 byte로 저장됨. (일부 4 byte로 저장되는 문자가 있으나 거의 사용되지 않는 문자임) |
“KO16MSWIN949″보다 “AL32UTF8″은 문자형의 저장공간이 최대 1.5배(한글만 포함된 경우)가 필요하나, 영문/숫자만 사용되는 데이터(코드, ID, 번호, 순번 등)도 있고, 한글과 영문/숫자가 혼재되는 경우도 많으므로, 정확하지는 않지만 일반적으로 1.3배 정도 저장공간이 증가한다고 볼 수 있다.
Character Set 별로 상세한 내용은 다음을 참조하기 바란다.
*출처: 오라클과 NLS의 찰떡궁합 들여다보기(류정우│한국오라클 WPTG팀) (OTN의 예전 원문 링크는 없어짐)
KO16KSC5601 | KO16MSWIN949 | UTF8 | AL32UTF8 | |
한글 지원상태 | 한글 2350자 | KO16KSC5601 + 확장 8822자(총 11172자) | 한글 11172자 | 한글 11172자 |
캐릭터셋/인코딩 버전 | 한글완성형 | 완성형 코드포함 확장된 8822자는 MS Windows Codepage 949에 따라 배열 |
8.1.6 이전 : Unicode 2.1 8.1.7 이후: Unicode 3.0 |
9i Rel1: Unicode 3.0 9i Rel2: Unicode 3.1 10g Rel1: Unicode 3.2 10g Rel2: Unicode 4.0 |
한글 바이트 | 2바이트 | 2바이트 | 3바이트 | 3바이트 |
지원 버전 | 7.x | 8.0.6 이상 | 8.0 이후 | 9i Release 1 이상 |
Database Character set으로 설정 가능 여부 | 가능 | 가능 | 가능 | 가능 |
National Character set으로 설정 가능 여부 | 불가능 | 불가능 | 가능 | 불가능 |
한글 정렬 (NLS_SORT 설정) |
단순 바이너리 정렬로 구현 가능 | KOREAN_M 또는 UNICODE_BINARY 등 특수한 옵션 필요 (한글 정렬에 관한 설명 참조) |
한글 정렬은 단순 바이너리 정렬로 가능. 한자 정렬은 KOREAN_M 옵션 필요 | – 한글 지원은 UTF8과 동일 |
장점 | – 특별한 장점이 없음. 완성형 코드만을 입출력하는 것이 확실할 경우에는 높은 성능 | – 2바이트로 모든 한글 저장/입출력 가능. 공간의 소모가 적으면서도 모든 한글을 입출력할 수 있다 | – 현대 한글 11172자가 정확한 순서로 배열되어 정렬이 효과적 – 다른 언어들(중국어 태국어 등) 또한 같은 데이타베이스 인스턴스에 저장되어야 할 경우 UTF8 등의 유니코드 캐릭터셋 이외에 다른 대안이 있을 수 없음 |
|
단점 | – 한글을 2350자밖에 지원하지 못한다는 치명적인 단점이 있어 미래에는 사용이 자제되어야 할 캐릭터셋 | – 완성형과 호환을 하려다보니, 글자배열순서와 정렬 순서가 다르게 됨. 단순한 “ORDER BY” 절로는 제대로 한글 정렬을 할 수 없음 | 한글 한 캐릭터가 3바이트를 소모하게 되어 공간의 소모가 상대적으로 크고(2 바이트에 비해 1.5배), 유니코드 인코딩/디코딩에 성능을 소모해야 한다 |
* “UTF8″은 Unicode 3.0까지만 지원하고, “AL32UTF8″은 Unicode의 최신 버전 및 향후 release될 버전도 지원함.
Oracle document에서도 “AL32UTF8″을 권장하고 있다.
출처: http://docs.oracle.com/cd/E11882_01/server.112/e10729/ch2charset.htm#NLSPG002
출처: Oracle Character Set 변환 필요성 , 설정 가이드 개요 (prodskill.com)
반응형
'오라클 > 참고' 카테고리의 다른 글
물리, 논리적 분류 / 인덱스 (0) | 2022.11.16 |
---|---|
오라클 19c RAC 패치 적용 (0) | 2022.11.10 |
오라클 데이터 이관 (EXP / IMP) (0) | 2022.10.27 |
Character Set (0) | 2022.10.27 |
테이블 스페이스 (0) | 2022.10.27 |