2009-06-11 99 views
3

我想在实际创建JDBC连接之前指定JDBC连接的语言。Oracle JDBC瘦客户机的设置语言

例如,如果我在

DriverManager.getConnection(url, user, password)  

我需要得到ORA错误定位于我所选择的语言指定错误的L/P凭据。我使用Oracle瘦客户机并设置NLS_LANG环境变量不起作用

回答

1

使用DriverManager.getConnection(String url, Properties info)方法可能会取得一些成效。

从文档:

参数:

url - 形式JDBC的数据库URL:子协议:子名称

info - 任意字符串标记的列表/值对作为连接参数;通常至少一个 “用户” 和 “密码” 属性应包括

也许这样的事情可能工作:

String url = ...; 
Properties info = new Properties(); 
info.setProperty("user", ...); 
info.setProperty("password", ...); 
info.setProperty("NLS_LANG", ...); 
DriverManager.getConnection(url, info); 
+0

我试过,但它不适合我。 :-( – sax 2009-06-11 16:43:53

0

按文件----

Providing Globalization Support 

The basic Java Archive (JAR) files, ojdbc5.jar and ojdbc6.jar, contain all the necessary classes to provide complete globalization support for: 

    Oracle character sets for CHAR, VARCHAR, LONGVARCHAR, or CLOB data that is not being retrieved or inserted as a data member of an Oracle object or collection type. 
    CHAR or VARCHAR data members of object and collection for the character sets US7ASCII, WE8DEC, WE8ISO8859P1, WE8MSWIN1252, and UTF8. 

To use any other character sets in CHAR or VARCHAR data members of objects or collections, you must include orai18n.jar in the CLASSPATH environment variable of your application. 
1

这对我来说最合适,如NLS_LANG setting for JDBC thin driver?

-Duser.language=en -Duser.region=US 
+0

这是可行的,因为JDBC瘦驱动程序查找Java语言环境以提取语言,然后在连接建立期间相应地更改数据库会话语言。数据库会话的语言用于以适当的语言返回错误消息。 – 2017-07-13 09:01:19