Hola pessoal, estou com um problema na obtenção de dados de uma stored procedure feita em MySQL para o Java
A minha Stored Procedure é essa:
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_calc_produto`( num_compra INT)
BEGIN
DECLARE preco_uni REAL;
DECLARE quant INTEGER;
DECLARE num_produto INTEGER;
START TRANSACTION;
SELECT tb_produtos_cod_produtos INTO num_produto FROM tb_compra WHERE cod_compra=num_compra;
SELECT valor_custo INTO preco_uni FROM tb_produtos WHERE cod_produtos=num_produto;
SELECT quantidade INTO quant FROM tb_compra WHERE cod_compra=num_compra;
SELECT preco_uni*quant AS preco_final;
COMMIT;
END$$
DELIMITER ;
O meu código do Java é esse:
public void teste() throws SQLException {
try {
conecta();
CallableStatement cs = conect.prepareCall("{? = call db_academia.sp_calc_produto(?)}");
//cs.registerOutParameter(1, java.sql.Types.FLOAT);
cs.setInt(2, 12);
cs.execute();
cs.registerOutParameter(1, java.sql.Types.FLOAT);
//System.out.println("Codigo da pessoa atualizada:" + cs.getFloat(1));
System.out.println("RETURN STATUS: ");
JOptionPane.showMessageDialog(null,"dados : \n"+cs.getFloat(1) );
cs.close();
}
catch(SQLException erro) {
JOptionPane.showMessageDialog(null,"Erro sql : \n"+ erro.getMessage());
}
}
O programa esta dando o seguinte erro: Parameter index out of range(2>number of parameter, which is 1)