如何使用groovy从程序中返回参数

时间:2013-03-11 12:39:12

标签: sql groovy

我按照这个例子使用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天后?我应该添加更多点

1 个答案:

答案 0 :(得分:0)

问题出在其他地方。 这里有语法错误:

sql.call(GString.EMPTY +  "{call " + schema + "." + name + "($par1,$par2)}")

字符串中的调用永远不会被执行,因为你之前没有$ {。相反,你的参数DO在他们面前是毫无意义的。

sql.call(GString.EMPTY +  "${call " + schema + "." + name + "(par1,par2)}")

是对的。

与其他代码行相同。