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

如何在Azure Data Factory的ForEach中向Lookup活动传递完整SQL语句

问题根因

语法报错由两个配置问题共同导致:

  1. 内部Lookup活动的SQL表达式额外包裹了不必要的单引号:从管道配置可以看到,内部Lookup的sqlReaderQuery表达式写为'@{item().source_query}',外层的单引号会被直接拼接到最终执行的SQL语句中,导致SQL语法结构错误。
  2. 运行时返回的SQL语句前后存在\r\n换行符和多余空白字符,也会干扰SQL解析。
修复步骤

1. 修改内部Lookup的SQL表达式

去掉表达式外层的单引号,同时用ADF内置的trim()函数清理前后的空白和换行符,将内部Lookup的sqlReaderQuery值修改为:

@trim(item().source_query)

对应管道JSON的修改效果如下:

"sqlReaderQuery": {
    "value": "@trim(item().source_query)",
    "type": "Expression"
}

2. 可选数据源校验

检查存储SQL语句的[Sales].[Customers]表source_query字段,确认存储的SQL本身没有多余的单引号、特殊符号,避免后续出现其他语法问题。

修改后重新运行管道,内部Lookup拼接的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 02:06:06