使用 SQL 语句执行过程,参数为 groovy

Execute procedure with SQL statement with parameter by groovy

Client SQL 程序是这样开始的,他们正在等待值:@Firma

EXECUTE @RC = [dbo].[Aktualizace_stavba_data]

@Firma 

GO 

GROOVY 脚本 - 我需要在您的帮助下进行编辑:

import de.uplanet.scripting.groovy.util.Safely

def conn  = g_dbConnections["IPOS20016"]

String Firma= g_request.get("Firma"); //prepared value

//now I dont know how to implement and also write correctly the rest of the script.

def strCall = "{call inc(2,3)}"

def call = conn.prepareCall(strCall)
call.execute()

def rs = call.getResultSet()
def contentProc

while (rs.next()){
contentProc = rs.getInt(1)
}

rs = Safely.close(rs)
stmt = Safely.close(call)

我使用以下命令调用一个存储过程,该过程接受一个参数和 returns 一个 VARCHAR 值。在 Groovy 中,您通常不使用 resultSet。

conn.query("{? = call dbo.Aktualizace_stavba_data(?)}", [Sql.out(Sql.VARCHAR.type), 'parm1']) { returned ->
    println "returned: ${returned}"
}

编辑:我删除了第一个 '? = ' 从查询中,这是一个错误。官方文档在这里:https://docs.groovy-lang.org/latest/html/documentation/sql-userguide.html#_stored_procedures