1

いくつかのパラメーターを取り、アプリケーションに返される一意の 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) を呼び出すと、上記の例外がスローされます。

助けてください。ありがとうございました。

4

0 に答える 0