我有一个可行的存储过程,它根据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 //
}
答案 0 :(得分:2)
您可以查看Groovy Documentation有关“存储过程支持”的信息。例如:
sql.call '{call Hemisphere(?, ?, ?)}', ['Guillaume', 'Laforge', Sql.VARCHAR], { dwells ->
println dwells // => Northern Hemisphere
}