1

我有一个可以工作的存储过程,它根据 where 子句进行选择。但是,当我尝试从我的 grails 应用程序中调用它时,我收到错误说索引 1 超出范围。我的代码如下

class SQLTestController {

    def dataSource

    def index() {

        Sql sql = new Sql(dataSource)
       def result =  sql.call("SelectFromTemp","Test")

               [result:result]

    }

我想将返回的值作为结果传递,然后将其显示在我的视图中。“SelectFromTemp”是我的过程名称,我正在传递参数“Test”我的 sp 是

    SelectFromTemp(
@headertestcase varchar(max)
)
AS
 SET NOCOUNT ON;
Select * from dbo.tempTable where HeaderTestCase=@headertestcase

(尝试了提到使用http://groovy.codehaus.org/Database+features的建议)

sql.call '{call SelectFromTemp(?)}', ['Test', Sql.VARCHAR], { dwells ->
println dwells // 

}

4

1 回答 1

2

您可以查看有关“存储过程支持”的Groovy 文档。例子:

sql.call '{call Hemisphere(?, ?, ?)}', ['Guillaume', 'Laforge', Sql.VARCHAR], { dwells ->
    println dwells // => Northern Hemisphere
}
于 2013-07-24T19:05:25.767 回答