2 ответов:
SELECT * FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';Покажет вам базу данных и Национальный набор символов. Набор символов базы данных управляет кодированием данных в Столбцах
CHARиVARCHAR2. Если база данных поддерживает Unicode в этих столбцах, набор символов базы данных должен быть AL32UTF8 (или UTF8 в некоторых редких случаях). Национальный набор символов управляет кодированием данных в СтолбцахNCHARиNVARCHAR2. Если набор символов базы данных не поддерживает Unicode, возможно, вы сможете хранить данные Unicode в Столбцах с этими типами данных но это, как правило, усложняет систему-приложения, возможно, придется изменить, чтобы поддерживать национальный набор символов.
Unicode - это система кодирования символов, которая определяет каждый символ в большинстве разговорных языков мира, поддержка Unicode в базе данных Oracle:
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Чтобы убедиться, что ваша база данных является Unicode, проверьте значение параметра "NLS_CHARACTERSET", и это должно быть AL32UTF8 или AL16UTF16 из списка выше.
SQL> SQL> SELECT * FROM v$nls_parameters WHERE parameter='NLS_CHARACTERSET'; PARAMETER VALUE CON_ID --------------------------- ------------------- ---------- NLS_CHARACTERSET AL32UTF8 0Чтобы изменить значение параметра, пожалуйста, возьмите Fullback up, потому что оператор 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;
Comments