Bozhoの2番目の改訂された回答は近いものでしたが、完全にはありませんでした。しかし、それは私を答えに導きました。
私が始めたコード例をとると、次のようになります。
CallableStatement proc = connection.prepareCall("{ ? = call dbo.mySproc() }");
proc.registerOutParameter(1, Types.INTEGER);
proc.execute();
int returnValue = proc.getInt(1);
ここで重要なのは、prepareCall
の「call」の前にある「?=」です。 戻り値とregisterOutputParameter
の場所を設定する関数 。戻り値は常にintであるため、整数として登録する必要があります(少なくとも、SQL Serverでは、他のDBでは異なる場合があります)。したがって、getInt
を使用して取得する必要があります 。この方法をテストしましたが、機能します。