没有方法签名:groovy.sql.Sql.callWithAllRows()适用于参数类型

时间:2018-09-13 19:42:07

标签: java sql groovy

我正在通过groovy方法groovy.sql.Sql.callWithAllRows调用sql存储过程,该方法不需要参数,仅返回resultSet。但是在发布带有空附件的以下方法时,它失败,因为“没有方法签名:groovy.sql.Sql.callWithAllRows()适用于参数类型”我假设您可以在不发送参数的情况下进行callWithAllRows,因为存储过程不需要它们吗?

这是失败的呼叫:

    List<List<GroovyRowResult>> results = sql.callWithAllRows("{call 
    myStoredProcedure()}",[],{});
    results.each { result ->
        result.each { row ->
            row.each {                   
                println(it.FormalName.toString())
            }
        }
    }

我的存储过程

 CREATE PROCEDURE myStoredProcedure 
 AS
 BEGIN
   SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName 
   FROM Person.Contact
 END

1 个答案:

答案 0 :(得分:1)

正确的语法是

def rowsList = sql.callWithAllRows '{call myStoredProcedure()}',[],{
    result ->
}

这里是参考:http://docs.groovy-lang.org/latest/html/gapi/groovy/sql/Sql.html#callWithAllRows(java.lang.String,%20List%3CObject%3E,%20groovy.lang.Closure)