我有 MS SQL Server 存储过程(SQL Server 2012),它返回:
return @RetCode
用语句(RetCode 是 int 类型)描述过程执行结果的返回值(成功与否)- 一个结果集(多条记录,每条记录 5 个字段)
- 另一个结果集(多条记录,每条记录 3 个字段)
我使用 Java 的 CallableStatement 对象从我的 Groovy(和 Java)代码中调用此过程,但我找不到处理所有三个输出的正确方法。
我的最后一次尝试是
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()
我尝试了几个小时的几种方法,但没有找到正确的方法。其他一些人产生了另一个例外。
你能帮我解决这个问题吗?
提前致谢!
更新(针对蒂姆):我在启动代码时看到了 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