Настройка NLS для мультиязычности
Мое текущее приложение работает с NLS_lang как American.america на формах Oracle. Мы планируем сделать это приложение доступным на мультиязычном языке. мы находимся в процессе изменения кода для обработки меток приложений, подсказок, подсказок, сообщений и т. д. во время выполнения. мы не хотим менять форматы времени и даты и оставлять их как в American.america. Но, например, когда я изменяю NLS_lang на French_canadian или что-нибудь еще. Наряду с языком меняются форматы даты и параметры языка даты. Мне нужно изменить NLS_lang, так как это единственный способ, которым я могу переводить сообщения об ошибках оракула. Но мои форматы дат, имеющие формат DD-MON-YYYY в базе данных Oracle, создают проблему в моей веблогической сессии. Есть ли способ изменить мою веб-логику только для того, чтобы мои формы были на French_canadian, но оставляли форматы даты / языки формата даты на американском? Можем ли мы сделать это? кроме языка другие параметры остаются такими же, как американские??? Пожалуйста помоги.
Заранее спасибо за ваше время и ценные идеи...
1 ответ
Вы можете установить язык и формат даты / времени индивидуально. Посмотрите на эти параметры:
- NLS_DATE_FORMAT
- NLS_DATE_LANGUAGE
- NLS_LANGUAGE
- NLS_TERRITORY
- NLS_NUMERIC_CHARACTERS
NLS_LANG используется для определения значения по умолчанию для всех этих, но каждый из них может быть различным. С NLS_TERRITORY вы обычно можете установить "NLS_DATE_FORMAT", "NLS_NUMERIC_CHARACTERS", "NLS_CURRENCY" и "NLS_ISO_CURRENCY"
Смотрите пример здесь:
ALTER SESSION SET NLS_TERRITORY = 'germany';
ALTER SESSION SET NLS_LANGUAGE = 'polish';
ALTER SESSION SET NLS_DATE_LANGUAGE = 'french';
SELECT SYSDATE AS german_date_format, TO_CHAR(SYSDATE, 'Day') AS french_day FROM dual;
SELECT 1/0 AS polish_error_message FROM dual;
GERMAN_DATE_FORMAT FRENCH_DAY
--------------------------------
23.01.14 Jeudi
SELECT 1/0 AS polish_error_message FROM dual
*
Error at line 1
ORA-01476: dzielnik jest równy zero