0

SQL SP 运行流畅。但是 Groovy Script SQL 连接 SP 返回错误并且 return=null

常规代码:

private String get_sube_kodu_bul(String subeAdi) {
    MutableIssue mutableIssue = issue
    def wasIndexing = ImportUtils.indexIssues
    ImportUtils.indexIssues = true
    def sql = Sql.newInstance("jdbc:jtds:sqlserver://10.xx.xx.xxx:1433/DBNAME", "UsrName","Pass", "net.sourceforge.jtds.jdbc.Driver")
    subeAdi = subeAdi.trim()
    def row = sql.firstRow("EXEC SP '${subeAdi}'")
    return row.SUBE_KODU
}

日志错误:

The script failed : java.sql.SQLException: 
    The executeQuery method must return a result set.

为什么我会收到此错误?

4

1 回答 1

1

firstRow()期望将结果集作为执行语句的返回值。您的存储过程似乎只返回一个值(SUBE_KODU)。根据文档,您应该使用 rather call()。像下面这样的东西应该可以完成这项工作:

private String get_sube_kodu_bul(String subeAdi) {
    MutableIssue mutableIssue = issue
    def wasIndexing = ImportUtils.indexIssues
    ImportUtils.indexIssues = true
    def sql = Sql.newInstance("jdbc:jtds:sqlserver://10.xx.xx.xxx:1433/DBNAME", "UsrName","Pass", "net.sourceforge.jtds.jdbc.Driver")
    subeAdi = subeAdi.trim()
    def subeKodu
    sql.call("EXEC SP '${subeAdi}'", { returnedSubeKodu -> subeKodu = returnedSubeKodu })
    return subeKodu
}
于 2014-08-25T06:17:42.040 回答