You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory:查询结果无法正确传入存储过程

问题解决方法

核心问题

Lookup活动返回的output.value是对象数组(比如[{"batch_id":5},{"batch_id":35},{"batch_id":45}]),不是纯整数数组,直接传给存储过程参数会导致格式不匹配——因为存储过程要的是整数(单个或数组),不是对象结构。

具体解决步骤

情况1:存储过程接受单个batch_id

  • 若只需要第一个返回值:用表达式 @activity('Get_Batch_Schedule').output.value[0].batch_id 替换原引用
  • 若要循环处理每个值:添加ForEach活动,将迭代项设为 @activity('Get_Batch_Schedule').output.value,在活动内部引用 @item().batch_id 作为参数值

情况2:存储过程接受整数数组(如SQL Server表值参数)

  • 把对象数组转成纯整数数组,用通用表达式:
    @xpath(xml(json(concat('{"root":', activity('Get_Batch_Schedule').output.value, '}'))), '//batch_id/text()')
    
  • 存储过程端需提前定义对应表类型(比如CREATE TYPE BatchIdList AS TABLE (Id INT)),并将batch_id参数类型设为该表类型

额外检查点

  • 确认存储过程batch_id参数的类型:是单个INT还是表值参数,别搞混
  • 查看Lookup活动的实际输出:在ADF监控里打开Get_Batch_Schedule的运行详情,确认返回的对象结构和列名(比如是否是batch_id,有没有拼写错误)
  • 避免直接传递整个output.value数组,必须提取出里面的整数属性值

内容的提问来源于stack exchange,提问作者uday13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:13:14