Hola chicos, estoy en un gran problema...
Quiero mandar llamar Storeprocedures desde Java pero me sale una Excepcion al querer hacerlo. Mi codigo de Java es el siguiente:
Código:
DELIMITER |
CREATE PROCEDURE `TotalRequestDelayedByWeek`
(
IN `areaUno` int,
IN `areaDos` int
)
BEGIN
DECLARE diaSemana int;
DECLARE diaInicial int;
DECLARE diaFinal int;
DECLARE fechaInicial varchar(8);
DECLARE fechaFinal varchar(8);
SET diaSemana = DAYOFWEEK( CURDATE() );
SET diaInicial = diaSemana - 1;
SET diaFinal = 7 - diaSemana;
SET fechaFinal = DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL ( diaFinal - 7 ) DAY ),'%Y%m%d' );
SET fechaInicial = DATE_FORMAT( DATE_SUB( CURDATE(),INTERVAL ( diaInicial + 7 ) DAY ),'%Y%m%d' );
IF ( areaDos < 0 )THEN
SELECT * FROM requests WHERE area = areaUno AND finished_date >= fechaInicial AND finished_date <= fechaFinal AND internal_status = 3 AND ( DATEDIFF( expected_date, finished_date ) < 0 );
ELSE
SELECT * FROM requests WHERE ( area = areaUno OR area = areaDos ) AND finished_date >= fechaInicial AND finished_date <= fechaFinal AND internal_status = 3 AND ( DATEDIFF( expected_date, finished_date ) < 0 ) ORDER BY area;
END IF;
END|
DELIMITER ;
Y como mando a llamar el SP desde Java es asi:
Código:
private static final String TOTAL_REQUEST_DELAYED_BY_WEEK = "{ CALL TotalRequestDelayedByWeek( ?, ? ) }";
...
try{
Connection connection = getConnection();
CallableStatement cstm = connection.prepareCall( TOTAL_REQUEST_DELAYED_BY_WEEK );
cstm.setInt( 1, areaOne );
cstm.setInt( 2, areaTwo );
cstm.execute();
ResultSet rs = cstm.getResultSet();
while ( rs.next() ) {
collection.add( this.createRequestDTO( rs ) );
}
cstm.close();
connection.close();
}catch( SQLException e ){
throw new SQLException("Cannot execute the SP of Data Base (DAO)");
}
Misteriosamente el error me lo lanza "CallableStatement cstm = connection.prepareCall( TOTAL_REQUEST_DELAYED_BY_WEEK );", me gustaria si ustedes pueden decirme:
¿ porque me lanza error?
¿ como obtengo el resultado de StoreProcedure sin mandarle un OUTParameter (tengo otros SP's que creo una tabla temporal y regreso la seleccion de toda la tabla)?
Les agradesco mucho su ayuda y espero su pronta respuesta, realmente ya busque en toda la web sin una solucion clara