有没有办法使用 RETURNING INTO 获取受影响的行的值?我需要插入相同的行 x 次,并获取插入行的 id。
查询如下:
public static final String QUERY_FOR_SAVE =
"DECLARE " +
" resultId NUMBER ; " +
"BEGIN " +
" INSERT INTO x " +
" (a, b, c, d, e, f, g, h, i, j, k, l, m) " +
" values (sequence.nextVal, :a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, :l) " +
" RETURNING a INTO :resultId;" +
"END;";
现在我可以将这个查询添加到批处理中,在JAVA循环中使用addBatch。
IntStream.range(0, count)
.forEach(index -> {
try {
setting parameters...
cs.addBatch();
} catch (SQLException e) {
e.printStackTrace();
}
});
cs.executeBatch();
有没有办法像这样从批处理中返回数组或列表? 我可以仅使用SQL执行这些插入操作,但在这种情况下,我还想知道如何返回ID数组。 提前感谢。
DBMS_SQL
中的类型(JDBC 驱动程序将为您生成辅助类型)。 - Lukas Eder