Hola,
 
  Necesito insertar en una tabla de base de datos 5000 registros. Lo que estoy haciendo es llamar desde un servlet a un procedimento almacenado en una  bd oracle, pasándole a este procedimiento los valores que debe insertar en la tabla. 
 
Servlet:
 
for (int fila = 0; fila < 5000; fila++) {
 CallableStatement cs = conn.prepareCall("{ call proInsertaPrueba ( ?,?,?,? ) }");
 cs.setInt(1, 999); 
 cs.setInt(2, fila + 1); 
 cs.setString(3, “Valor”);
cs.setDouble(4, 4759.66);
 
 ResultSet rsP = cs.executeQuery();
 rsP.close(); 
 cs.close();  
} // end for
 
 
Procedimiento almacenado:
 
create procedure proInsertaPrueba (numCodigo IN NUMBER, numFila IN NUMBER, varValor IN VARCHAR2, numCantidad IN NUMBER)
IS
BEGIN
   INSERT INTO PRUEBA_INSERT (Codigo, Fila, Valor, Cantidad)
   VALUES  (numCodigo, numFila , varValor,  numCantidad);
   COMMIT;
END;
/
 El problema está en que tengo que llamar al procedimiento 5000 veces, ya que este procedimiento realiza  una inserción en una tabla.
 
¿ Existe alguna manera de pasar la procedimiento almacenado un array ?
 
De tal forma que sólo  haya que llamar al procedimiento un vez pasándole como parámetro un array de 5000 registros y este procedimiento almacenado se encargará de leer el array e realizar la inserciones en la tabla. Además de esta forma sólo hay un acceso a la base de datos.
 
Gracias de antemano. 
   
 
 Respuesta: Cómo pasar un array como parámetro a un procedimiento almacenado
 Respuesta: Cómo pasar un array como parámetro a un procedimiento almacenado 
 Este tema le ha gustado a 1 personas
Este tema le ha gustado a 1 personas