TEngo un problema bastante grande. Tengo que "transformar" una funcion en java a un procedimineto almacenado. Lo que haría la funcion es básicamente recorrer una tabla de pedidos y, si hay algun pedido sin asignar una mercancia se la asigno. Tengo una tabla ALMACEN, y otra PEDIDOSESTADISTICOS; la idea es que cuando inserto un nuevo lote de productos en el ALMACEN busco en la tabla PEDIDOS ESTADÍSTICOS entonces si la cantidad de productos que hay en el almacen es mayor a la cantidad que necesita el pedido se la asigno. En java algo así:
public void completarPedidos(String idAlmacen) {
PreparedStatement ps= con.prepareStatement("select cantidad from almacen where idAlmacen="+idAlmacen+"'");
ResultSet rs= ps.executeQuery();
int cantidadDisponible =rs.getInt("cantidad");
PreparedStatement ps2=con.prepareStatement("select producto from almacen where idAlmacen="+idAlmacen+"'");
ResultSet rs2=ps2.executeQuery();
String producto=rs2.getString("producto");
PreparedStatement ps3=con.prepareStatement("select fecha from almacen where idAlmacen="+idAlmacen+"'");
ResultSet rs3=ps3.executeQuery();
Date fecha=rs3.getDate("fecha");
//Además aqui tendría que formatear la fecha a "dd/mm/aaaa"
PreparedStatement ps4=con.prepareStatement("select cantidad from pedidosEstadisticos where producto=? and fecha=?");
ps4.setString(1,producto);
ps4.setString(2,fecha);
ResultSet rs4=ps4.executeQuery();
while(rs4.next()){
// si la cantidad del pedido es menor que la del almacen. Reduzco la cantidad del almacen.
Bueno el caso es que no tengo ni la más remota idea de como funcionan los procedimientos almacenados y he estado buscando información y ya se que son código pl/sql, que hay cursores, (algo que es fetch)... y muchas cosas que en concreto no me aclaran nada.
Si alguien me podía por favor ayudar con este ejemplo (que yo creo que es el más dificil de los que tengo) a ver si así yo soy capaz de hacer el resto.
Muchas gracias y un saludo