0

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

提前感谢您的时间和宝贵的想法...

4

1 回答 1

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
于 2014-01-22T21:52:46.823 回答