我有一个函数,它接受一些参数并生成一个唯一的 varchar id 以返回给应用程序。当我从我的 java 应用程序调用该函数时,它会执行(插入数据),但是当我尝试检索 outparam 时,它会引发 SQL 异常
参数索引超出范围(1 > 参数个数,即 0)。
爪哇代码:
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 应用程序调用 tmt.getString(1) 时,它会引发上述异常。
请帮忙。谢谢你。