Azure Logic App如何调用SQL函数获取返回数据?
Azure Logic App 传入参数调用SQL自定义函数操作步骤
- 替换原有Get Rows动作:默认Get Rows仅支持直接查询表、视图,不支持传递参数调用自定义函数,你需要将待调整的Get Rows步骤替换为Azure SQL连接器下的
Execute a SQL query (V2)动作,完成SQL数据库连接配置。 - 构造参数化查询语句:在该动作的Query输入框中填入如下语句,使用占位符避免SQL注入风险:
SELECT * FROM dbo.GETDataByNumbers(@n1, @n2, @n3, @n4)
- 绑定传入参数:在
Execute a SQL query (V2)动作的Parameters配置区域,依次添加4个参数,参数名对应上述语句里的@n1、@n2、@n3、@n4,参数值分别选择「When a http request is received」触发器输出的n1、n2、n3、n4字段,注意保证参数为数值类型,不要传入字符串格式。 - 配置返回响应:SQL查询执行完成后,动作输出的
ResultSets.Table1就是自定义函数返回的数据集,直接将该字段填入Response步骤的Body配置中即可返回给请求端。 - 备选方案(存储过程封装,安全性更高):你也可以在SQL数据库中创建存储过程包装该函数调用,逻辑如下:
CREATE PROCEDURE dbo.GetDataByNumbersProc @n1 decimal(18,6), @n2 decimal(18,6), @n3 decimal(18,6), @n4 decimal(18,6) AS BEGIN SELECT * FROM dbo.GETDataByNumbers(@n1, @n2, @n3, @n4) END
之后在Logic App中使用Execute stored procedure (V2)动作调用该存储过程,绑定对应参数即可。
注意:禁止直接将HTTP请求的参数拼接进SQL查询字符串,必须使用连接器自带的参数绑定功能,避免SQL注入漏洞。
内容的提问来源于stack exchange,提问作者user25730
相关产品推荐
相关产品推荐

