Oracle SODA:并非所有 return 参数都已注册

Oracle SODA : Not all return parameters registered

我正在尝试使用 example.

使用 SODA 库将文档插入 oracle12c

我使用 SODA 创建了一个集合。现在我想插入一个文档,但是我在插入文档时遇到异常。

Caused by: java.sql.SQLException: Not all return parameters registered
at oracle.jdbc.driver.OracleStatement.processDmlReturningBind(OracleStatement.java:4876)
at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:3101)
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2355)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3579)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3665)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1352)
at oracle.soda.rdbms.impl.TableCollectionImpl.insertAndGet(TableCollectionImpl.java:784)

代码

final OracleCollection countersCollection = database.openCollection(SC_LMS_SEQUENCE_COLLECTION);
countersCollection.insertAndGet(database.createDocumentFromString("{\"id\" : \"COURSE_SEQ\",\"seq\" : 0}"));

我是不是漏了什么??

问题是由于 ojdbc.jar 不匹配造成的。

官方文档说,

If you're using JDK8 or above, you could use ojdbc8.jar that ships with Oracle Database 18c. Alternatively, you can also use ojdbc8.jar that ships with OracleDatabase 12.2.0.1. If you're still on JDK7 or even JDK6, you can use ojdbc7.jar or ojdbc6.jar respectively. These ship with Oracle Database 12.1.0.2, and are downloadable from this page.

我的项目正在使用 JDK 7 并且项目有自定义 ojdbc6 jar 和 11.3 版。然后我用我的自定义 jar 替换 ojdbc7.jar(从此 link. 下载)。 由于上述更改,异常消失了,代码运行良好。