Quiero mandar llamar Storeprocedures desde Java pero me sale una Excepcion al querer hacerlo. Mi codigo de Java es el siguiente:
Código:
Y como mando a llamar el SP desde Java es asi: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 ;
Código:
Misteriosamente el error me lo lanza "CallableStatement cstm = connection.prepareCall( TOTAL_REQUEST_DELAYED_BY_WEEK );", me gustaria si ustedes pueden decirme: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)"); }
¿ 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