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

如何在Azure Data Factory的Foreach活动中正确引用item()值

Foreach循环内Lookup活动动态SQL正确引用item值语法

错误原因

动态表达式@item().CustomerName被置于单引号包裹的静态字符串内部,数据工厂表达式解析器不会识别硬编码字符串内的@开头动态标记,会将其作为普通文本传递给数据库,触发SQL语法错误。

正确写法

写法1:concat函数拼接(全版本兼容)

将完整SQL语句作为动态表达式,用concat函数拼接固定SQL片段和动态取值,SQL语法要求的单引号需用两个单引号转义:

@concat('SELECT * FROM Customers WHERE CustomerName = ''', item().CustomerName, '''')

当item().CustomerName取值为Tesla时,最终传递给数据库的SQL为:SELECT * FROM Customers WHERE CustomerName = 'Tesla'

写法2:字符串插值(语法更简洁)

支持新版本数据工厂/ Synapse管道,用@{}标记动态取值部分:

@'SELECT * FROM Customers WHERE CustomerName = ''@{item().CustomerName}'''

注意事项

  • 上述表达式需完整填写在Lookup活动SQL配置的「动态内容」编辑窗口中,不可直接填写在静态SQL输入框
  • 若CustomerName取值可能包含单引号,需提前对item().CustomerName做单引号转义处理,避免SQL语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:54:01