次を返すMS SQL Serverストアドプロシージャ(SQL Server 2012)があります。
- プロシージャの実行結果を一般的に記述した戻り値 (成功したか失敗したか) with
return @RetCode
statement (RetCode は int 型) - 1 つの結果セット (それぞれ 5 つのフィールドを持つ複数のレコード)
- 別の結果セット (それぞれ 3 つのフィールドを持つ複数のレコード)
Java の CallableStatement オブジェクトを使用して Groovy (および Java) コードからこのプロシージャを呼び出していますが、3 つの出力すべてを処理する正しい方法が見つかりません。
私の最後の試みは
CallableStatement proc = connection.prepareCall("{ ? = call Procedure_Name($param_1, $param_2)}")
proc.registerOutParameter(1, Types.INTEGER)
boolean result = proc.execute()
int returnValue = proc.getInt(1)
println(returnValue)
while(result){
ResultSet rs = proc.getResultSet()
println("rs")
result = proc.getMoreResults()
}
そして今、私は例外を受け取ります:
Output parameters have not yet been processed. Call getMoreResults()
数時間にわたっていくつかのアプローチを試みましたが、正しいアプローチが見つかりませんでした。他のいくつかは別の例外を生成しました。
問題を解決してください。
前もって感謝します!
更新(Tim 用): コードを起動しているときに rc が表示されます:
Connection connection = dbGetter().connection
CallableStatement proc = connection.prepareCall("{ ? = call Procedure_Name($param_1, $param_2)}")
boolean result = proc.execute()
while(result){
ResultSet rs = proc.getResultSet()
println(rs)
result = proc.getMoreResults()
}
私は rc をオブジェクトとして見ます:net.sourceforge.jtds.jdbc.JtdsResultSet@1937bc8