我在Oracle 11g数据库中有一个存储过程,如f(a IN,b IN,c OUT)。 我想在批处理模式下从JDBC调用它,然后读取所有OUT变量 这可能吗? 到目前为止我有这个
CallableStatement statement = connection.prepareCall("f(?, ?, ?)");
for(Item i : items) {
int i = 0;
statement.setString(++i, item.getA());
statement.setString(++i, item.getB());
statement.registerOutParameter(++i, Types.NUMERIC);
statement.addBatch();
}
statement.executeBatch();
int[] answers = ?
由于
答案 0 :(得分:7)
可悲的是,没有。
对CallableStatement进行批量更新的能力是相同的 对象与PreparedStatement对象一样。事实上,一个 CallableStatement对象被限制为与其相同的功能 PreparedStatement对象有。更准确地说,使用批次时 更新工具,CallableStatement对象只能调用存储 接受输入参数或根本没有参数的程序。
参考:http://docs.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/callablestatement.html#1000220