8i, 9i , 10g, 11g 버전에서 NLS_CHARACTERSET 을 AL32UTF8 / UTF8 (Unicode) 로의 변경
(Doc ID 2231857.1)
Last updated on FEBRUARY 22, 2019
적용 대상:
Oracle Database - Enterprise Edition - 버전 8.0.3.0 to 11.2.0.4 [릴리즈 8.0.3 to 11.2] Oracle Database - Standard Edition - 버전 8.0.3.0 to 11.2.0.4 [릴리즈 8.0.3 to 11.2] Oracle Database Cloud Schema Service - 버전 N/A 과(와) 그 후속 Oracle Database Exadata Cloud Machine - 버전 N/A 과(와) 그 후속 Oracle Cloud Infrastructure - Database Service - 버전 N/A 과(와) 그 후속 이 문서의 내용은 모든 플랫폼에 적용됩니다.
목적
"csalert 가 작동하지 않습니다" 또는 "캐릭터셋 변경이 작동하지 않습니다"와 관련되어 로깅된 SR 대부분은 본 노트의 과정을 따르지 않았기 때문에 단순합니다. 본 노트는 다소 길지만 알려진 모든 문제를 확인하고 어떤 개체가 올바른 전환이 가능하도록 조치가 필요한지 설명하는 것입니다. 노트를 따라주시고 섹션에 대해 건너뛰지 마십시오. 제공되는 경우, 어떤 개체가 어떤 행동을 취해야하는지 명확하게 알 수 있도록 선택하십시오. 본 노트는 "정확한 단계" 입니다.
10g 와 11g 에서는 Csalter (또는 DMU 툴) 을 사용할 필요가 있습니다. 12c 에서는 DMU 툴을 사용할 필요가 있습니다. 10g, 11g, 12c 에서 AL32UTF8 또는 UTF8 로 변경하기 위해 "Alter database character set" 구문은 절대로 사용하지 마십시오. 10g, 11g, 12c 에서 UTF8 또는 AL32UTF8 로 변경하기 위해 "Alter database character set" 을 사용하는 것은 최소(!) 데이터 사전 객체들과 대부분의 사용자 데이터 또한 손상시킬 것입니다. 10g, 11g, 12c 에서 AL32UTF8 또는 UTF8 로 변경하기 위해 "Alter database character set" 가 사용된다면 단순히 수행될 수 있는 방법은 백업을 통한 복구입니다.
12c 이후로는 DMU 만이 유니코드로의 마이그레이션을 위한 가능한 도구립니다. <Note 1272374.1> The Database Migration Assistant for Unicode (DMU) Tool
이 노트는 데이터베이스(서버단) 자체적인 변경만을 다룰 것입니다. 8i ( 8.1.7 이하) 에서는 AL32UTF8 을 이용하실 수 없습니다. 대신 UTF8 을 사용해 주십시오.
유니코드(AL32UTF8 / UTF8) 데이터베이스를 사용하기 위해 어플리케이션이 유니코드 데이터베이스를 사용하는 것을 지원하는지 확인하실 필요가 있습니다. 이 부분은 오라클 데이터베이스 서포트에서 "확인" 또는 "확정" 할 수 없습니다. 어플리케이션 문서를 참고하시거나 어플리케이션이 NLS_CHARACTERSET 으로써 AL32UTF8 또는 UTF8 과 작동하는 것이 인증되어 있는지 확인하기 위해 어플리케이션 벤더 / 지원 팀에 문의 하십시오. AL32UTF8 로 변경할 때 클라이언트와 어플리케이션 단에서의 더 많은 부분을 위해서는 다음 문서를 참고해 주십시오. <Note 788156.1> AL32UTF8 / UTF8 (Unicode) Database Character Set Implications
강하게 권고합니다:
모든 변경을 위해 "테스트 드라이브" 를 수행해 주십시오.
다음 문서를 우선 읽어주시고 <Note 788156.1> AL32UTF8 / UTF8 (Unicode) Database Character Set Implications, 응용 프로그램과 클라이언트가 데이터베이스 레벨에서 변경 사항을 검사하고 준비되었는지 확인하십시오.
이 노트는 NLS_CHARACTERSET에서 AL32UTF8 / UTF8로 이동하는 데 사용될 수 있습니다. (또한 UTF8에서 AL32UTF8 (또는 역으로)로 이동하는 데 사용될 수 있음을 의미).
이 노트는 다른 문자 세트 (예 : UTF8)로 이동하기 위해 AL32UTF8을 사용하여 작성되며, 9i 이하에서는 CSSCAN TOCHAR에서 "AL32UTF8"을 "UTF8"로 바꾸고 "alter database character set" 명령으로 대체합니다
이 "흐름"은 단일 바이트 문자 집합 (US7ASCII, WE8DEC 등)에서 다른 다중 바이트 문자 집합 (ZHS16GBK, ZHT16MSWIN950, ZHT16HKSCS, ZHT16HKSCS31, KO16MSWIN949, JA16SJIS ...)으로 이동하는 데에도 사용할 수 있습니다. AL32UTF8을 xx16xxxx 타겟 캐릭터 셋. 그러나 이 경우 AL32UTF8을 사용하면 훨씬 더 좋은 아이디어가됩니다. <Note 333489.1> Choosing a database character set means choosing Unicode.
범위
현재의 NLS_CHARACTERSET 를 AL32UTF8 / UTF8 또는 다른 멀티바이트 캐릭터셋으로 변경하는 DBA 이 노트에서는 AL32UTF8 이 사용될 것입니다. 그러나 UTF8 (8i 에서는 AL32UTF8 대신 사용되는) 또는 다른 멀티바이트 캐릭터셋 또한 적용 가능합니다.
현재 NLS_CHARACTERSET 는 NLS_DATABASE_PARAMETERS 에서 보여집니다.
Sqlplus / as sysdba SELECT value FROM NLS_DATABASE_PARAMETERS WHERE parameter='NLS_CHARACTERSET' /
NLS_CHARACTERSET 은 CHAR, VARCHAR2, LONG, CLOB 데이터타입의 캐릭터셋을 정의합니다.
상세 내역
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!