오라클 시스템이 유니코드 또는 멀티바이트 문자를 지원하도록 설정되었는지 확인하는 방법은 무엇입니까?
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
'programing' 카테고리의 다른 글
ASP.Net Core 2.1의 ID< - 계정 컨트롤러 사용자 지정 (0) | 2023.06.29 |
---|---|
"상태 아님" 조건을 기준으로 데이터 프레임에서 행 삭제 (0) | 2023.06.29 |
Oracle에서 REGEXP_LIKE가 아님 (0) | 2023.06.29 |
Git 분기의 커밋 수 카운트 (0) | 2023.06.29 |
Firebase에서 push()를 사용할 때 고유 ID를 가져오는 방법 (0) | 2023.06.29 |