Search code examples
springoracle-databasespring-jdbcora-01000

Spring-jdbc 5.0.5 NamedParameterJdbcTemplate.batchUpdate ORA-01000


After migrating from Spring 4.1.7 to Spring 5.0.5 we have ORA-01000: maximum open cursors exceeded when using with Oracle 12c and ojdbc7 driver

Exception raised after following code

@SuppressWarnings("unchecked")
private void executeBatch(Map<String, Object>[] updateBatchParams) {
 int[] updateResults = namedJdbcTemplate.batchUpdate(SQL, updateBatchParams);

The issue is very similar to https://jira.spring.io/browse/SPR-16139.

But we dont have ability to update ojdbc driver.

Any ideas how the issue can be fixed?

P.S. Created an issue in Spring jira


Solution

  • Juergen Hoeller:

    There hasn't been any recent work on this. Since this is effectively a bug in the Oracle JDBC driver, I'm afraid we won't be introducing a workaround for an older driver at this point.

    You could try setting spring.jdbc.getParameterType.ignore=true as a system property on in a spring.properties file in the root of your classpath, or use spring-jdbc-4.3.17 for the time being... with all other jars set to 5.0.6 (which isn't officially supported but should work fine in practice). I strongly recommend upgrading the JDBC driver though.