2015-06-25 167 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

我更新到最新的驅動程序,我不再看到這個錯誤。謝謝! –

相關問題