java Sql SQLFeature Not Supported Exception Unsupported Holdability Value

java Sql SQLFeature Not Supported Exception Unsupported Holdability Value

這篇介紹java Sql SQLFeature Not Supported Exception Unsupported Holdability Value.

前情提要

1
2
3
4
5
6
7
Oracle從11.2.0.1升級至Oracle RAC 19.3.0.0
在使用
try (PreparedStatement ps = conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE, ResultSet.CLOSE_CURSORS_AT_COMMIT)) {
}
語法時會出現
java.sql.SQLFeatureNotSupportedException: Unsupported holdability value

原因&解決方法

1
2
3
在Oracle 11g 的文件,已說明只Spport HOLD_CURSORS_OVER_COMMIT參數。
將ResultSet.CLOSE_CURSORS_AT_COMMIT參數改成ResultSet.HOLD_CURSORS_OVER_COMMIT。
並確保connection和ResultSet使用完皆有回收。