我已经安装了Oracle Database 11g Express Edition,通常可以使用PLSQL Developer连接到我的本地数据库,但是不能与IntelliJ连接。它说区域设置未被识别。
在这里搜索了一些类似的问题之后,解决方案有点是手动更改计算机的区域设置,我这样做并重新启动,但是仍然无法正常工作。而且我确定它确实改变了,因为现在,这行Java代码:
System.out.println(Locale.getDefault())
打印了en_US
。
现在我真的不知道出了什么问题,为什么PLSQL可以工作而IntelliJ却不能。
我正在使用ojdbc6.jar进行连接。
当我尝试与下面的Java代码连接时,会抛出相同类型的异常。
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SYSTEM", "password");
例外:
Exception in thread "main" java.sql.SQLException: Locale not recognized
at oracle.jdbc.driver.T4CTTIoauthenticate.setSessionFields(T4CTTIoauthenticate.java:1006)
at oracle.jdbc.driver.T4CTTIoauthenticate.<init>(T4CTTIoauthenticate.java:238)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:401)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at data_coonnections.DataConnector.main(DataConnector.java:15)
答案 0 :(得分:1)
JDBC瘦驱动程序使用Java的语言环境来更改数据库会话语言。例如,我是法国人,我住在法国,当我从本地系统连接到美国的数据库时,我的数据库会话使用法语。为什么?那是因为我的语言环境是用这种方式配置的。如果Oracle无法识别您的语言环境,则始终可以将默认语言环境替换为其他语言。
答案 1 :(得分:0)
将格式(在控制面板->时钟和区域->区域->格式中)另外更改为英语(美国)确实有帮助。
答案 2 :(得分:0)
您可以转到“ 高级”标签(请参见发布的图片),然后转到“ VM选项”,而不是更改操作系统的区域设置。 :”字段。
输入-Duser.language=en -Duser.region=US
。
您还可以设置-Duser.region=UK
或可以识别的区域。