【问题标题】:NLS_LANG setting for JDBC thin driver?JDBC 瘦驱动程序的 NLS_LANG 设置?
【发布时间】:2010-11-07 23:25:31
【问题描述】:

我正在使用瘦 Oracle JDBC 驱动程序版本 10.2.0 (ojdbc14.jar)。我想手动配置它的 NLS_LANG 设置。有什么办法吗?

目前它从 VM 变量 user.language 中获取此设置(通过设置当前语言环境自动设置,或从系统环境启动时)。

当用户将应用程序语言环境切换到 Oracle JDBC 驱动程序不支持的语言环境(例如 mk_MK)时,就会出现问题。在这种情况下,下次我获取连接时会出现以下异常:

ORA-00604: 递归 SQL 级别 1 发生错误 ORA-12705: 无法访问 NLS 数据文件或指定的环境无效

我可以在获取连接之前即时更改语言环境并来回切换回用户选择的语言环境,但这似乎不优雅且效率低下。

【问题讨论】:

    标签: oracle jdbc nls ora-12705


    【解决方案1】:

    另请参阅:https://serverfault.com/questions/63216/ora-12705-cannot-access-nls-data-files-or-invalid-environment-specified/64536

    对我来说,最好的回应是 FoxyBOA 调用 java 应用程序:

    -Duser.country=en -Duser.language=en
    

    【讨论】:

    • 有趣。为自己的答案投票:D
    • +1,因为它比当前接受的答案侵入性要小得多。
    • 谢谢。曾为 SQLDeveloper 和 Web 逻辑数据源工作
    • 这个解决了我的问题:-Duser.language=en -Duser.region=US
    【解决方案2】:

    NLS_LANG 设置派生自 java.util.Locale 。因此,您需要在连接之前进行类似的调用:

    Locale.setDefault(Locale.<your locale here>);
    

    【讨论】:

    • 是的,这正是我最终所做的。它工作正常,但不是很漂亮。谢谢!
    • 神级答案。使用Locale.US 模仿AMERICAN 语言设置。
    【解决方案3】:

    我遇到了同样的问题,发现瘦 jdbc Oracle 驱动程序不需要指定 NLS_LANG 或系统区域设置。但是当您连接到非英语数据库时,您的类路径中会包含 orai18n.jar。

    来自 Oracle® 数据库 JDBC 开发人员指南和参考

    提供全球化支持

    基本的 Java 归档 (JAR) 文件, ojdbc5.jar 和 ojdbc6.jar,包含所有 提供必要的课程 完整的全球化支持:

    • 用于 CHAR 的 Oracle 字符集, VARCHAR、LONGVARCHAR 或 CLOB 数据 未被检索或 作为 Oracle 的数据成员插入 对象或集合类型。
    • CHAR 或 对象的 VARCHAR 数据成员和 字符集的集合 US7ASCII、WE8DEC、WE8ISO8859P1、 WE8MSWIN1252 和 UTF8。

    使用任何其他字符集 CHAR 或 VARCHAR 数据成员 对象或集合,您必须 在 CLASSPATH 中包含 orai18n.jar 你的环境变量 应用。

    【讨论】:

      【解决方案4】:

      使用以下方法调用 java 对我有用:

      -Duser.country=us -Duser.language=en
      

      如果国家/地区的“en”也导致ORA-12705

      【讨论】:

      • 那是因为没有“EN”国家。有:美国、英国和许多其他以英语为官方语言的国家
      【解决方案5】:

      您应该使用与 Oracle 10g 完全兼容和认证的旧 Oracle 9.2 JDBC 驱动程序。旧驱动程序不使用 ALTER SESSION SET NLS_LANGUAGE 命令。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 2011-10-07
        • 2011-05-05
        相关资源
        最近更新 更多