programing

오라클 시스템이 유니코드 또는 멀티바이트 문자를 지원하도록 설정되었는지 확인하는 방법은 무엇입니까?

yellowcard 2023. 6. 29. 19:56
반응형

오라클 시스템이 유니코드 또는 멀티바이트 문자를 지원하도록 설정되었는지 확인하는 방법은 무엇입니까?

Oracle이 여러 문자 집합을 지원하는 것은 이해하지만, 제가 근무하는 현재 11g 시스템에서 해당 기능이 활성화되었는지 여부를 어떻게 확인할 수 있습니까?

SELECT *
  FROM v$nls_parameters
 WHERE parameter LIKE '%CHARACTERSET';

데이터베이스와 국가 문자 집합을 보여줍니다.데이터베이스 문자 집합은 데이터 인코딩을 제어합니다.CHAR그리고.VARCHAR2데이터베이스가 해당 열에서 유니코드를 지원하는 경우, 데이터베이스 문자 집합은 AL32UTF8(또는 드문 경우에도 UTF8)이어야 합니다.국가 문자 집합은 데이터 인코딩을 제어합니다.NCHAR그리고.NVARCHAR2데이터베이스 문자 집합이 유니코드를 지원하지 않는 경우, 이러한 데이터 유형이 있는 열에 유니코드 데이터를 저장할 수 있지만 일반적으로 시스템이 복잡해집니다. 국가 문자 집합을 지원하려면 응용프로그램을 변경해야 할 수 있습니다.

유니코드는 전 세계 대부분의 구어로 된 모든 문자를 정의하는 문자 인코딩 시스템으로, Oracle Database에서 유니코드 지원:

Character Set   Supported in RDBMS Release  Unicode Encoding
AL24UTFFSS      7.2 - 8i                    UTF-8
UTF8            8.0 - 11g                   UTF-8
UTFE            8.0 - 11g                   UTF-EBCDIC
AL32UTF8        9i - 11g                    UTF-8
AL16UTF16       9i - 11g                    UTF-16

데이터베이스가 유니코드인지 확인하려면 "NLS_CHARACHERSET" 매개 변수 값을 확인하십시오. 위 목록에서 AL32UTF8 또는 AL16UTF16이어야 합니다.

SQL>
SQL> SELECT * FROM v$nls_parameters WHERE parameter='NLS_CHARACTERSET';

PARAMETER                   VALUE               CON_ID
--------------------------- ------------------- ----------
NLS_CHARACTERSET            AL32UTF8            0

매개 변수 값을 변경하려면 ALTER DATABASE 문을 롤백할 수 없으므로 전체 백업을 수행하십시오. 그리고 다음 문 사용:

SHUTDOWN IMMEDIATE
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET AL32UTF8;
SHUTDOWN IMMEDIATE;
STARTUP;

언급URL : https://stackoverflow.com/questions/9703421/how-can-i-tell-if-my-oracle-system-is-set-to-support-unicode-or-multibyte-charac

반응형