我按照这个例子使用groovy调用并返回过程中的参数:http://groovy.codehaus.org/Database+features
在存储过程支持部分中没有示例如何调出程序 我试试这个,但输出仍然是空的
sql.call(GString.EMPTY + "{call " + schema + "." + name + "($par1,$par2)}"){ output -> println output }
更新:
在我的情况下,如果par1 == null则接受新条目(这是“在我们的参数中”的原因)所以我创建了这样的东西:
if (par1 == null) {
sql.call(GString.EMPTY + "{call " + schema + "." + name + "(${Sql.VARCHAR},$par2)}"){ output_par1 -> println "par1: " + output_par1 }
} else {
sql.call(GString.EMPTY + "{call " + schema + "." + name + "($par1,$par2)}"){}
println "par1: " + par1
}
所以如果par1为null,则过程生成新值,然后是println,如果par1不为null,则只打印它。这对我有用,但是如果有人想要输出非null的参数,那么我仍然不知道如何写它。
更新
真的没什么?获得赏金7天后?我应该添加更多点
答案 0 :(得分:0)
问题出在其他地方。 这里有语法错误:
sql.call(GString.EMPTY + "{call " + schema + "." + name + "($par1,$par2)}")
字符串中的调用永远不会被执行,因为你之前没有$ {。相反,你的参数DO在他们面前是毫无意义的。
sql.call(GString.EMPTY + "${call " + schema + "." + name + "(par1,par2)}")
是对的。
与其他代码行相同。