【问题标题】:NLS setting for multilanguages多语言的 NLS 设置
【发布时间】:2014-02-12 23:01:05
【问题描述】:

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

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

【问题讨论】:

    标签: forms oracle plsql weblogic nls-lang


    【解决方案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
    

    【讨论】:

    • 即使在执行 Alter session 命令之后,表单中的日期局部变量也会以多语言集的格式而不是美国格式填充。例子 。本地日期变量将值存储为“22-JAN-13”,我想是“22-JAN-13”
    • 然后形成自己格式化日期。也许它从注册表中获取设置,你可以在那里看看。通常,应用程序根据最终用户本地偏好而不是服务器的默认预设以格式显示日期是想要的行为。
    猜你喜欢
    • 1970-01-01
    • 2012-04-29
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    相关资源
    最近更新 更多