我刚刚发现,当 Locale 设置为空字符串时,使用 JDBC Thin 驱动程序版本 10.2.0.4 创建与 Oracle 的连接失败,例如:
Locale.setDefault(new Locale("",""));
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection(url, userName, password);
上面的代码会产生 ORA-12705: Cannot access NLS data files or invalid environment specified。如果我指定 en US 或仅指定 en,它工作正常。
但是,如果我使用 Oracle 驱动程序 9.2.0.1,则这段代码可以正常工作:NLS 设置为 AMERICAN。
我的问题是:这是正常的、记录在案的行为变化吗?也许将默认语言环境设置为空字符串是一种不好的做法?