sql-server - 使用带有groovy参数的SQL语句执行过程
问题描述
客户端 SQL 过程像这样开始,他们正在等待价值:@Firma
EXECUTE @RC = [dbo].[Aktualizace_stavba_data]
@Firma
GO
GROOVY SCRIPT - 我需要在您的帮助下进行编辑:
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)
解决方案
我使用以下方法调用了一个存储过程,该过程接受一个参数并返回一个 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
推荐阅读
- vba - 筛选数据透视表数据字段
- angular - 角路由器激活路由
- python - SSL: CERTIFICATE_VERIFY_FAILED Django 在 nginx 网络服务器上通过 uwsgi 运行时出错
- json - JSON 数据过滤器
- html - Papa Parse - 解析 CSV 文件后使用 JSON 填充表
- bash - Bash For循环在下一次迭代之前变回原始目录
- sql - “选择前 10 名”使用 SQLDBX
- javascript - CSS 样式效果未应用于第一张幻灯片,但适用于所有其他幻灯片
- c# - C# 使用文本框作为 streamwriter 的文件名
- firebase - 找不到变量:自我/无法安装 firebase