0
Beim Aufrufen der gespeicherten Prozedur ist ein Fehler aufgetreten. Die gespeicherte Prozedur wird in MySQL geschrieben und der Aufruf wird von meinem Computer an den MySQL Server gesendet.hjava.sql.SQLException Parameterindex von 20 liegt außerhalb des Bereichs (1, 0)
//this is my code to call the procedure
try {
CallableStatement cStmt = con.prepareCall("{call beta.Pr_branch_master(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}"); // my procedure name
cStmt.setString(1,"N");
cStmt.setString(2, tranDate);
cStmt.setInt(3,0);
cStmt.setString(4, branchStartDt);
cStmt.setInt(5, Integer.parseInt(orgMstID));
// cStmt.setInt(4,Types.INTEGER);
cStmt.setString(6, brType);
cStmt.setString(7, branchName);
cStmt.setString(8, address);
cStmt.setString(9, area);
cStmt.setString(10, city);
cStmt.setString(11, state); // these are my parameters to be inserted into the table
cStmt.setString(12, pinCode);
cStmt.setString(13, phoneNo);
cStmt.setString(14, mobileNo);
cStmt.setString(15, emailID);
cStmt.setString(16, regCode);
cStmt.setString(17, activeFlag);
cStmt.setInt(18, 1);
cStmt.setString(19, enterDesc);
// cStmt.registerOutParameter(19,Types.INTEGER);
// cStmt.setString(19,branchMstID);
// cStmt.setInt(19, 0);
System.out.println("cstmt before out>>>>"+cStmt);
cStmt.registerOutParameter(20, Types.INTEGER);
boolean b = cStmt.execute();// executing the statement
System.out.println("b "+b+" :"+cStmt);
primaryKey = cStmt.getInt(20);
System.out.println("str "+primaryKey);
if(primaryKey > 0){
/*dbResult = "success";
result.setStatus(dbResult);*/
result.setMsg("Record Save Successfully.");
} else {
/*dbResult = "error";
result.setStatus(dbResult);*/
result.setMsg("Record Not Save.");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
// I'm getting an error message while calling the stored procedure
Was ist MySQL-Jar-Version, die verwendet wird? Kannst du mysql jar version mit einem späteren ändern? –
Code Neuformatierung, Sätze Verbesserungen –