我有一个函数,它接受一些参数并生成一个唯一的varchar id以返回给应用程序。当我从我的java应用程序调用该函数时它会执行(插入数据),但是当我尝试检索outparam时会抛出SQL异常
参数索引超出范围(1>参数个数,为0)。
java代码:
String sql = "{?=call mytable.myFunction (?,?,?,?,?)}";
CallableStatement tmt = sqlConn.prepareCall(sql);
tmt.registerOutParameter(1, Types.VARCHAR);
tmt.setString(2, firstName);
tmt.setString(3, lastName);
tmt.setDate(4, new java.sql.Date(dob.getTime()));
tmt.setString(5, null);
tmt.setString(6, null);
tmt.execute();
String accountNumber = tmt.getString(1);
我正在使用Navicat来处理MySQL,并且该过程在Navicat中执行并显示正确的返回值。但是,当我从java app调用tmt.getString(1)时,它会抛出上述异常。
请帮忙。 谢谢。