1

我按照这个例子使用 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,则只需 println 它。这对我有用,但如果有人想返回不为空的 out 参数,那么我仍然不知道如何编写它。

更新

真的什么都没有?7天后有赏金?我可能应该补充一点

4

1 回答 1

0

问题在别处。你在这里有一个语法错误:

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

字符串中的调用将永远不会被执行,因为 { 之前没有 $。相反,您的参数之前确实有毫无意义的 $ 。

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

是正确的。

与其他代码行相同。

于 2015-10-23T22:50:14.110 回答