Установите Oracle NLS_LANGUAGE из Java в веб-приложении - PullRequest
1 голос
/ 13 сентября 2010

Насколько я понимаю, JDBC заключается в том, что он автоматически устанавливает параметры сеанса Oracle NLS_LANGUAGE / NLS_TERRITORY на основе стандартного языкового стандарта JVM.Это удобно для отдельного свингового приложения, но кажется бесполезным для Java-приложения.Единственное решение, которое я могу придумать, - это задать параметры сеанса непосредственно перед выполнением запроса к базе данных, что-то вроде:

Connection c = // However you get it.
Statement s = c.createStatement();
s.execute("alter session set NLS_LANGUAGE = 'SPANISH'");
// Do actual query here

Мои вопросы:

  1. Этолучший способ установить параметры языка / страны Oracle из веб-приложения?
  2. Поскольку параметры Oracle принимают имена языков, а не коды, существует ли сопоставление кодов языка java / ISO с именами языков Oracle?Например, могу ли я использовать Locale.getDisplayLanguage () и быть в безопасности?

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Может зависеть от вашей архитектуры.

В некоторых местах предпочитают использовать несколько географически локальных веб-приложений для одной базы данных (например, одно во Франции, одно в Великобритании, одно в Испании).

Или вы извлекаете данные (например, даты, числа) в формате «компьютер» из базы данных и заставляете веб-приложение преобразовывать их в предпочтения конечного пользователя (или, возможно, на основе информации браузера, если вы этого не делаетеиметь логины пользователя).

Или у вас есть отдельные пулы соединений для разных «территорий».

Имейте в виду, что запросы на изменение территорий могут повлиять на использование индекса и сортировку .

1 голос
/ 13 сентября 2010

Если вы используете пул соединений, это лучший способ убедиться, что результаты Джонни в американском, а результаты Джоханна в немецком.

Вы можете сохранить предпочтительное значение NLS пользователя для LANGUAGE, TERRITORY,CHARACTERSET и SORT, используя V $ NLS_VALID_VALUES в качестве источника данных, при условии, что вы сохраняете информацию для входа / пользователя.

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