尝试在Oracle SQL Developer中使用Sybase连接时,如何解决此错误?

问题描述

我已经下载了this answer中引用的jtds驱动程序,然后在sql Developer中将其设置为第三方JDBC驱动程序。我创建了与本地运行的Sybase服务器的连接并对其进行了测试。连接测试成功!太棒了!

当我尝试打开连接以开始工作时,出现以下错误,有人知道如何解决吗?

java.lang.NullPointerException
at oracle.javatools.db.jdbc.JdbcDDLDatabase.registerBuilders(JdbcDDLDatabase.java:443)
at oracle.javatools.db.AbstractDatabase.<init>(AbstractDatabase.java:127)
at oracle.javatools.db.AbstractDatabase.<init>(AbstractDatabase.java:79)
at oracle.javatools.db.ddl.DDLDatabase.<init>(DDLDatabase.java:60)
at oracle.javatools.db.jdbc.JdbcDDLDatabase.<init>(JdbcDDLDatabase.java:61)
at oracle.javatools.db.sybase.AdaptiveServerDatabaseImpl.<init>(AdaptiveServerDatabaseImpl.java:21)
at oracle.javatools.db.sybase.anywhere.AdaptiveServerAnywhereDatabaseImpl.<init>(AdaptiveServerAnywhereDatabaseImpl.java:18)
at oracle.javatools.db.sybase.AdaptiveServerDatabaseFactory.createDatabaseImpl(AdaptiveServerDatabaseFactory.java:33)
at oracle.javatools.db.DatabaseFactory.createDatabaseImpl(DatabaseFactory.java:316)
at oracle.javatools.db.DatabaseFactory.createDatabase(DatabaseFactory.java:286)
at oracle.jdeveloper.db.DatabaseConnections.getDatabase(DatabaseConnections.java:656)
at oracle.dbtools.raptor.utils.Connections$ConnectionInfo.getDatabase(Connections.java:284)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1180)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1166)
at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:83)
at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:38)
at oracle.dbtools.raptor.navigator.db.BaseConnectionNode.getConnection(BaseConnectionNode.java:91)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode.getobjectFactory(DatabaseTreeNode.java:90)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:145)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:119)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:199)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:702)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Suppressed: java.sql.sqlException: TDS Protocol error: Invalid packet type 0xc
    at net.sourceforge.jtds.jdbc.Tdscore.nextToken(Tdscore.java:2486)
    at net.sourceforge.jtds.jdbc.Tdscore.getNextRow(Tdscore.java:805)
    at net.sourceforge.jtds.jdbc.jtdsResultSet.next(jtdsResultSet.java:611)
    at net.sourceforge.jtds.jdbc.jtdsResultSet.close(jtdsResultSet.java:503)
    at oracle.javatools.db.jdbc.JdbcDDLDatabase.registerBuilders(JdbcDDLDatabase.java:467)
    ... 27 more
Caused by: net.sourceforge.jtds.jdbc.ProtocolException: Invalid packet type 0xc
    at net.sourceforge.jtds.jdbc.Tdscore.nextToken(Tdscore.java:2475)
    ... 31 more

解决方法

我能够设置连接配置文件,从SQL Developer的Sybase连接并选择没有问题。

使用了jtds-1.3.1.jar驱动程序。

SQL Developer版本17.x

尝试该组合,看看它是否对您有用。

驱动程序源: http://jtds.sourceforge.net