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