多语言的NLS设置

时间:2014-01-22 18:02:53

标签: forms oracle plsql weblogic nls-lang

我当前的应用程序在Oracle表单上使用NLS_lang作为American.america运行。我们计划在多语言上提供此应用程序。我们正在修改代码以处理应用程序标签,提示,提示,消息等运行时。我们不想更改时间/日期格式,并将其保留在American.america中。但是,例如,当我将NLS_lang更改为French_canadian或其他任何内容时。随着语言,日期格式和日期语言参数正在发生变化。我需要更改NLS_lang,因为这是我可以翻译oracle错误消息的唯一方法。但是我在Oracle DB中使用DD-MON-YYYY格式的日期格式在我的weblogic sesssion中产生了问题。是否有办法只将我的weblogic会话更改为我的表格为French_canadian,但是将日期格式/日期格式语言留在美国?我们可以做到这一点吗?除了语言其他参数保持与美国相同???请帮忙。

感谢你的时间和宝贵的想法...

1 个答案:

答案 0 :(得分:0)

您可以单独设置语言和日期/时间格式。 看看这些参数:

  • 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