2012-06-02 13 views
9

Tengo un procedimiento almacenado en una base de datos Oracle 11g como f (a IN, b IN, c OUT). Quiero llamarlo desde JDBC en modo por lotes y luego leer todas las variables de SALIDA.
¿Esto es posible? tengo esto hasta ahoraen Oracle JDBC ¿es posible realizar un lote de llamadas a procedimientos almacenados y recuperar parámetros 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 = ? 

Gracias

Respuesta

7

Lamentablemente, no.

La capacidad de realizar actualizaciones por lotes es la misma para los objetos CallableStatement que para los objetos PreparedStatement. De hecho, un objeto CallableStatement está restringido a la misma funcionalidad que tiene un objeto PreparedStatement. Más precisamente, cuando se utiliza la función de actualización de lote , un objeto CallableStatement puede llamar solo a los procedimientos almacenados que toman los parámetros de entrada o no tienen parámetros.

Referencia: http://docs.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/callablestatement.html#1000220

Cuestiones relacionadas