无法使用IntelliJ连接到oracle数据库,无法识别语言环境

时间:2018-07-19 20:50:42

标签: java oracle intellij-idea oracle11g plsqldeveloper

我已经安装了Oracle Database 11g Express Edition,通常可以使用PLSQL Developer连接到我的本地数据库,但是不能与IntelliJ连接。它说区域设置未被识别。

enter image description here

在这里搜索了一些类似的问题之后,解决方案有点是手动更改计算机的区域设置,我这样做并重新启动,但是仍然无法正常工作。而且我确定它确实改变了,因为现在,这行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)

3 个答案:

答案 0 :(得分:1)

JDBC瘦驱动程序使用Java的语言环境来更改数据库会话语言。例如,我是法国人,我住在法国,当我从本地系统连接到美国的数据库时,我的数据库会话使用法语。为什么?那是因为我的语言环境是用这种方式配置的。如果Oracle无法识别您的语言环境,则始终可以将默认语言环境替换为其他语言。

答案 1 :(得分:0)

将格式(在控制面板->时钟和区域->区域->格式中)另外更改为英语(美国)确实有帮助。

答案 2 :(得分:0)

您可以转到“ 高级”标签(请参见发布的图片),然后转到“ VM选项”,而不是更改操作系统的区域设置。 :”字段。 输入-Duser.language=en -Duser.region=US

您还可以设置-Duser.region=UK或可以识别的区域。