【问题标题】:Has anyone seen this NPE in Oracle JDBC driver?有人在 Oracle JDBC 驱动程序中看到过这个 NPE 吗?
【发布时间】:2016-01-27 15:33:33
【问题描述】:

我们可能很快就会追踪司机,但我想知道是否有人看到了这个。一些(第 3 方库)代码对从 Oracle JDBC 驱动程序获得的结果集执行 rs.next(),然后调用 rs.getLong() 以从 NUMBER 列中获取 long。多年来,所有这些都适用于各种版本的 Oracle、JDBC、操作系统等,但在特定的机器上,Oracle 12.1.0.2 和 ojdbc7 jar 用于该确切版本(12.1.0.2,来自http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html ),会发生以下异常:

java.lang.NullPointerException
    at java.lang.System.arraycopy(Native Method)
    at oracle.jdbc.driver.DynamicByteArray.get(DynamicByteArray.java:350)
    at oracle.jdbc.driver.NumberCommonAccessor.getLong(NumberCommonAccessor.java:546)
    at oracle.jdbc.driver.GeneratedStatement.getLong(GeneratedStatement.java:228)
    at oracle.jdbc.driver.GeneratedScrollableResultSet.getLong(GeneratedScrollableResultSet.java:564)

不幸的是 ojdbc 不是开源的。 这是一个已知的问题? 有没有其他的 jdbc 驱动可以试试?

【问题讨论】:

  • 看不懂中文,但f.dataguru.cn/thread-315841-1-1.html也提到了同样的异常
  • 这似乎是特定 JVM 中的问题,而不是驱动程序中的问题。您在哪个操作系统(供应商、版本、构建)上运行什么 JVM(供应商、版本、构建)?特别是当你看到它只发生在一台特定的机器上(猜你在其他机器上测试过并且无法在那里重现)它几乎肯定是特定于那台机器的东西(当然它也可能是数据,在这种情况下你会得到与另一台机器上完全相同的数据相同)。

标签: oracle jdbc ojdbc


【解决方案1】:

您使用的是哪个版本的 Oracle JDBC 瘦驱动程序?在 12.1.0.1 版本中,有一个错误会产生与您的类似的异常。它已在 12.1.0.2 中修复。所以看起来你的驱动程序升级可能会解决你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多