проблемы, назвав хранившуюся процедуру

Я стараюсь называть процедуру хранившейся с SQL Developer в Netbeans, но всегда у меня появляется ошибка pst.execute();. Как я могу решать это?

try{
    Connection cn;
    CallableStatement pst;
    int idcomercio = Integer.parseInt(cb_id_comercio.getSelectedItem().toString());
    String zona = tf_zona.getText();
    float pago = Integer.parseInt(tf_cant_pago.getText());
    float caso = cb_tipo_comercio1.getSelectedIndex();
    String tipo = cb_tipo_comercio1.getSelectedItem().toString();
    float recaudacion = Integer.parseInt(tf_recaudacion.getText());

    if (caso == 1) {//'" + idcomercio + "','" + zona + "','" + pago + "','" + tipo + "','" + recaudacion + "') ";
        Class.forName("oracle.jdbc.driver.OracleDriver");
        String driver = "jdbc:oracle:thin:@localhost:1521:orcl";
        cn = DriverManager.getConnection(driver, "system", "Contrasena1");

        pst = cn.prepareCall("{call mod_comercios(?,?,?,?,?)}");
        pst.setInt(1, idcomercio);
        pst.setString(2, zona);
        pst.setFloat(3, pago);
        pst.setString(4, tipo);
        pst.setFloat(5, recaudacion);
        pst.registerOutParameter("inOutParam", Types.INTEGER);
        pst.execute();
    }
} catch(Exception e){

}
0
задан 20.03.2019, 12:10
1 ответ

Возможная ошибка в тебе cГіdigo - тот, который находится в следующей lГ-nea, ademГЎs одного? недостающий.

pst.registerOutParameter("inOutParam", Types.INTEGER);

AquГ - оставил тебе пример, как нужно называть процедуру хранившейся с parГЎmetros вывода:

CallableStatement call = cn.prepareCall("{CALL mod_comercios(?,?,?,?,?,?)}");
call.setInt(1, idcomercio);
call.setString(2, zona);
call.setFloat(3, pago);
call.setString(4, tipo);
call.setFloat(5, recaudacion);
call.registerOutParameter(6, Types.INTEGER);
call.execute(); // Se manda a llamar al procedimiento almacenado.
int retval = call.getInt(6); //Obtengo el valor del parámetro de salida.
0
ответ дан 02.12.2019, 05:24

Теги

Похожие вопросы