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

ADF中ForEach内Script Activity执行存储过程报@item未声明错误

解决方案

问题根源

Script Activity的SQL脚本输入框中,若直接写入EXEC @item().StoredProcedure_1,ADF会将@item()视为SQL语句的一部分,而非ADF的动态表达式,导致SQL引擎识别@item为未声明的标量变量,触发报错。

解决步骤

方法1:动态拼接完整执行语句

直接通过ADF动态内容生成合法的存储过程执行语句:

  1. 进入Script Activity的脚本配置界面
  2. 清空默认的SQL脚本内容
  3. 点击脚本输入框右侧的「添加动态内容」按钮
  4. 输入以下表达式:
    @concat('EXEC ', item().StoredProcedure_1)
    
    该表达式会先解析item().StoredProcedure_1获取控制表中存储的存储过程名称,再拼接成EXEC 存储过程名的合法SQL语句,传递给SQL引擎执行。

方法2:带参数的存储过程执行(扩展场景)

如果存储过程需要传入控制表中的其他参数(如SchemaName、TableName),通过表达式拼接完整语句(注意字符串参数需用单引号转义):

@concat('EXEC ', item().StoredProcedure_1, ' ''', item().SchemaName, ''', ''', item().TableName, '''')

验证

配置完成后,测试运行ForEach管道,确认Script Activity可正常读取控制表中的存储过程并执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:43:12