oracle и поддержка i18n - PullRequest
       3

oracle и поддержка i18n

5 голосов
/ 26 октября 2010

У нас есть требование хранить данные char разных языков в одной и той же схеме БД.Oracle 10g - это наша БД.Я надеюсь, что кто-то, кто уже сделал это, даст мне более конкретные инструкции о том, как i18n включить оракул 10 г дБ.Нам просто нужно хранить данные из нескольких локалей, а также параметры сортировки (надеясь, что все основные базы данных поддерживают это) на уровне базы данных.Нам не нужно форматировать даты, дату, время, числа, валюту и т. Д.

Я читал некоторую документацию по поддержке oracle i18n, но несколько смущен их многочисленными свойствами nls_ *.Должен ли я использовать nls_lang или nls_language или NLS_CHARACTERSET .....

1 Ответ

6 голосов
/ 26 октября 2010

Предполагается, что вы строите базу данных с нуля, а не пытаетесь модифицировать существующую базу данных, что создает другие проблемы.

В базе данных вам необходимо убедиться, что набор символов базы данных поддерживает все символы, которые вы хотите сохранить. Предположительно, это означает установку NLS_CHARACTERSET базы данных на AL32UTF8. Лично я предпочитаю также установить NLS_LENGTH_SEMANTICS на CHAR. Это изменяет поведение по умолчанию VARCHAR2 (n) для выделения n символов хранения, а не n байтов. Поскольку AL32UTF8 является набором символов переменной длины, использование семантики байтов обычно проблематично, поскольку необходимо либо объявить поля, длина которых в 3 раза больше, и в результате разные пользователи смогут вводить различное количество символов в одном и том же поле.

NLS_LANG - это настройка клиента. Это идентифицирует набор символов, в который клиент собирается запросить преобразование данных. Как правило, это зависит от кодовой страницы операционной системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...