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

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

Ответы [ 2 ]

21 голосов
/ 14 марта 2012
SELECT *
  FROM v$nls_parameters
 WHERE parameter LIKE '%CHARACTERSET';

покажет вам базу данных и набор национальных символов. Набор символов базы данных управляет кодированием данных в столбцах CHAR и VARCHAR2. Если база данных поддерживает Unicode в этих столбцах, набор символов базы данных должен быть AL32UTF8 (или UTF8 в некоторых редких случаях). Набор национальных символов управляет кодированием данных в столбцах NCHAR и NVARCHAR2. Если набор символов базы данных не поддерживает Unicode, возможно, вы сможете хранить данные Unicode в столбцах с этими типами данных, но, как правило, это усложняет систему - приложения могут измениться для поддержки национального набора символов.

1 голос
/ 18 ноября 2017

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 вверх, потому что оператор 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...