Sqldeveloper /as sysdba 连接

Sqldeveloper /as sysdba 连接

我对 Oracle 还很陌生。

我安装了 Oracle 11g XE R2。我还安装了 SqlDeveloper 3.2.20.09 版本。

我生成了自动连接,并且有 2 个连接。一个是:/as sysdba,另一个是:system-XE

我成功连接到 system-XE,但是当我尝试在 SQLdeveloper 中以 sysdba 身份连接时(同时我可以通过 SQL 命令行连接)出现此错误:

java.lang.Error: Incompatible version of libocijdbc[Jdbc:112030, Jdbc-OCI:112020
at oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3557)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3550)
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:266)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:552)
at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:162)
at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:53)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:526)
at oracle.jdeveloper.db.adapter.AbstractConnectionCreator.getConnection(AbstractConnectionCreator.java:153)
at oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator.getConnection(RaptorConnectionCreator.java:195)
at oracle.dbtools.raptor.dialogs.conn.ConnectionPrompt.promptForPassword(ConnectionPrompt.java:67)
at oracle.jdeveloper.db.adapter.DatabaseProvider.getConnection(DatabaseProvider.java:321)
at oracle.jdeveloper.db.adapter.DatabaseProvider.getConnection(DatabaseProvider.java:254)
at oracle.jdevimpl.db.adapter.CADatabaseFactory.createConnectionImpl(CADatabaseFactory.java:60)
at oracle.javatools.db.DatabaseFactory.createConnection(DatabaseFactory.java:534)
at oracle.javatools.db.DatabaseFactory.createDatabase(DatabaseFactory.java:208)
at oracle.jdeveloper.db.DatabaseConnections.getDatabase(DatabaseConnections.java:607)
at oracle.dbtools.raptor.utils.Connections$ConnectionInfo.getDatabase(Connections.java:172)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1064)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1045)
at oracle.dbtools.raptor.navigator.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:115)
at oracle.dbtools.raptor.navigator.AbstractConnectionNode.getConnection(AbstractConnectionNode.java:30)
at oracle.dbtools.raptor.navigator.ConnectionFilter.getFactory(ConnectionFilter.java:94)
at oracle.dbtools.raptor.navigator.ConnectionFilter$1.doWork(ConnectionFilter.java:119)
at oracle.dbtools.raptor.navigator.ConnectionFilter$1.doWork(ConnectionFilter.java:104)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:515)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

我已经花了将近 3 个小时来寻找解决方案,因此我将非常感谢任何帮助。

答案1

来源:SQL 开发人员 3.1 显示错误 libocijdbc 版本不兼容(甲骨文社区)


  1. 创建 tnsnames.ora 文件

  2. 打开SQL Developer并设置tnsnames目录tools->Preferences->Database->advanced->Tnsnames Directory

  3. 在 SQL Developer 中,取消选中:工具->首选项->数据库->高级->使用 oci/thick 驱动程序

  4. 新的连接连接类型 TNS -> 网络别名(从列表中选择)

  5. 尝试连接

答案2

第一个错误信息看起来相当清楚:

java.lang.Error: Incompatible version of libocijdbc[Jdbc:112030, Jdbc-OCI:112020

无论出于什么原因,找到的 libocijdbc 版本(显然是版本 112020)与找到的 jdbc 版本(112030)不兼容。您可能需要考虑跟踪 libocijdbc 版本 112030,或者进行调整,以便首先找到 libocijdbc 版本 110230。

分享并享受。

答案3

我已经解决了。在 sqldeveloper/jdbc/lib 文件夹中,用相同的文件替换 ojdbc6dms.jar 和 ojdbc6.jar 文件,但版本为 Oracle Database 11g Release 2 (11.2.0.2.0) JDBC Drivers :)

答案4

我遇到了同样的错误,但原因不同。我使用的是如下所示的 jdbc url。

jdbc:oracle:oci:@//localhost:1521/服务名称

我将其改为下面这样并且工作正常。

jdbc:oracle:thin:@//localhost:1521/服务名称

相关内容