Как я могу сказать, если моя система Oracle устанавливается для поддержки Unicode или многобайтовых символов?



Я понимаю, что Oracle поддерживает несколько наборов символов, но как определить, включена ли эта функциональность в текущей системе 11g, в которой я работаю?

586   2  

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

    Ничего не найдено.