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()実行されたステートメントの戻り値として結果セットがあることを期待しています。ストアド プロシージャは 1 つの値 (SUBE_KODU) のみを返すようです。ドキュメントによると、むしろ使用する必要があります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 に答える