使用 Lookup Activity 通过传递查找值来使用脚本执行存储过程

问题描述 投票:0回答:1

总结:在 ADF 管道中,使用查找来选择所有数据并将每一行一次传递给 ForEach 活动。在 ForEach 活动中,首先我有复制数据活动,我从查找中读取值并作为源和接收器传递并加载数据。接下来我要运行一个存储过程。重复此过程,直到完成所有查找。

SELECT [SchemaName]
      ,[TableName]
      ,[SourceFilePath]
      ,[StoredProcedure_1]
FROM [dbo].[ADF_ControlTable]


@item().SchemaName
@item().TableName
@item().SourceFilePath
@item().StoredProcedure_1

使用具有

@item()
值的源和接收器复制数据活动,我正在将数据从文件加载到表(这按预期工作)。

下一步我想在 foreach 中执行脚本活动并执行

@item().StoredProcedure_1

这显示用户配置问题:

必须声明标量变量“@item”

azure lookup oracle-adf
1个回答
0
投票

enter image description here

当您在普通 SQL 脚本中给出 ADF 动态表达式时,就会出现上述错误。如果

@item().StoredProcedure_1
是存储过程名称,当您给出如下表达式时,将会出现上述错误。

enter image description here

上面的框将执行 SQL 查询。如果要在查询中给出 ADF 表达式,则需要使用字符串连接或 concat() 函数。

使用字符串连接

@{<ADF_expression>}
:

提出如下查询:

exec @{item().StoredProcedure_1}

enter image description here

这将根据您的要求执行脚本活动。

或者您也可以使用

concat()
功能。连接 SQL 查询和上面的表达式,如下所示。在查询中打开动态表达式并给出该表达式。

@concat('exec ',item().StoredProcedure_1)
© www.soinside.com 2019 - 2024. All rights reserved.