2015-06-25 138 views
0

我从Oracle数据库的简单查询,我看到这个错误在我的日志:为什么OracleStatement.wasNullValue抛出NullPointerException?

java.lang.NullPointerException 
     at oracle.jdbc.driver.OracleStatement.wasNullValue(OracleStatement.java:3337) 
     at oracle.jdbc.driver.OracleResultSetImpl.wasNull(OracleResultSetImpl.java:122) 

这里是导致该错误的代码:

public static Long getLong(ResultSet rs, String columnName) throws SQLException{ 
     long val = rs.getLong(columnName); 
     return rs.wasNull() ? null : val; 
    } 

为什么wasNullValue引发NullPointerException异常?这是从结果集中检索数据的正确方法吗?

+0

你能发布完整的堆栈跟踪吗? – Nick

+0

恩,是rs null? – OldProgrammer

+0

您使用的驱动程序的最新版本? –

回答

0

Oracle JDBC瘦驱动程序中存在一个旧的错误,如果在关闭的ResultSet上调用wasNull将抛出NPE。所以你可能想在调用wasNull()之前尝试调用rs.isClosed()。

+0

我更新到最新的驱动程序,我不再看到这个错误。谢谢! –

相关问题