作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个代码
String sql = "insert into colortable (string, color, cid) values (?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql,keyProperties.toArray(new String[0]));
ps.executeBatch();
final ResultSet rst = ps.getGeneratedKeys();
while (rst.next()) {
final BigDecimal bigDecimal = rst.getBigDecimal(1);
if (bigDecimal != null) {
ids.add(bigDecimal.intValueExact());
}
}
当代码到达 rst.next 时,我得到以下异常。
Caused by: java.sql.SQLException: Unsupported feature
at oracle.jdbc.driver.OracleStatement.fetchDmlReturnParams(OracleStatement.java:4959) ~[ojdbc6.jar:11.2.0.4.0]
at oracle.jdbc.driver.OracleReturnResultSet.next(OracleReturnResultSet.java:63) ~[ojdbc6.jar:11.2.0.4.0]
我发现问题出在ojdbc驱动这部分。
if (!this.statement.returnParamsFetched) {
this.statement.fetchDmlReturnParams();
this.statement.setupReturnParamAccessors();
}
特别是 this.statement.fetchDmlReturnParams(); 函数未实现。
现在我的问题是如何避免调用此函数,特别是 returnParamFetched 可以设置为 true?
最佳答案
我的应用程序真正执行的代码是
try {
final String sql = "insert into colortable (string, color, cid) values (?,?,?)";
final PreparedStatement ps = conn.prepareStatement(sql, new String[] {"ID"});
ps.setString(1, "TEST1");
ps.setString(2, "FFFFFF");
ps.setInt(3, 1);
ps.addBatch();
ps.setString(1, "TEST2");
ps.setString(2, "AAAAAA");
ps.setInt(3, 1);
ps.addBatch();
ps.executeBatch();
final ResultSet rst = ps.getGeneratedKeys();
rst.getMetaData();
if (rst != null){
while (rst.next()) {
final BigDecimal bigDecimal = rst.getBigDecimal(1);
System.out.println(bigDecimal);
Assert.notNull(bigDecimal);
}
}
ps.close();
}catch (final SQLException e){
System.out.println(e);
}finally {
}
我创建了一个测试用例来测试这段代码,我尝试使用不同的 ojdbc,我发现最新的 ojdb8 解决了这个问题。
关于java - 不支持的功能异常 fetchDmlReturnParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45638882/
我有这个代码 String sql = "insert into colortable (string, color, cid) values (?,?,?)"; PreparedStatement
我是一名优秀的程序员,十分优秀!