尝试检索存储函数的返回值时,参数索引超出范围

时间:2012-11-20 14:12:25

标签: mysql jdbc return-value sqlexception callable-statement

我有一个函数,它接受一些参数并生成一个唯一的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)时,它会抛出上述异常。

请帮忙。 谢谢。

0 个答案:

没有答案