Llamada a procedimiento almacenado de MySQL que devuelve un error en la sintaxis de SQL pero la sentencia está bien, no encuentro que puede ser:
aQuí el código de llamada al store proc:
// Instancio un obj. para contener un producto.
Modelo.ClassProductoFitosanitario p = new ClassProductoFitosanitario();
try {
conexion = java.sql.DriverManager.getConnection(URL_bd,usuari o,contraseña);
CallableStatement proc = conexion.prepareCall("call FITOSANITARIOS_Lee (?,?,?,?");
proc.setInt("IdP", Id);
proc.registerOutParameter("NombreP", Types.VARCHAR);
proc.registerOutParameter("MateriaP", Types.VARCHAR);
proc.registerOutParameter("PlazoP", Types.INTEGER);
proc.execute();
p.Nombre = proc.getString("NombreP");
p.Materia = proc.getString("MateriaP");
p.Plazo = proc.getInt("PlazoP");
} catch (SQLException ex) {
Logger.getLogger(ModeloModificarFitosanitarios.cla ss.getName()).log(Level.SEVERE, null, ex);
}
aquí pongo el storeproc de mysql:
CREATE DEFINER=`admin`@`%` PROCEDURE `FITOSANITARIOS_Lee`(
IN IdP INT,
OUT NombreP VARCHAR(45),
OUT MateriaP VARCHAR(45),
OUT PlazoP INT)
BEGIN
SELECT
Nombre,
Materia,
Plazo
FROM FITOSANITARIOS
WHERE Id = IdP
INTO NombreP, MateriaP, PlazoP;
END
YO por mas vueltas que le doy lo veo bien, el storeproc funciona en consola sin problemas, pero cuando en java llego a proc.execute(); me arroja la excepción