1

我正在通过数据流实现 SCD Type2。我已经在其中创建了一个参数,我将在其中传递一个列名,以及我在关键列的接收器转换中使用的这个参数。

在数据流的键列中传递参数

我选择了添加动态内容,然后选择了参数,之后我选择了我在数据流中创建的参数。然后它显示为"$Key_col"。但是当我运行管道时,它给了我一个错误-

{"message":"at Sink 'sink1'(Line 56/Col 6): 列操作数不允许在文字表达式中。详细信息:at Sink 'sink1'(Line 56/Col 6): 列操作数不允许在文字中表达式","failureType":"UserError","target":"Update_Existing_Records","errorCode":"DFExecutorUserError"}

谁能告诉我如何解决此错误或此问题的任何解决方法。

4

2 回答 2

1

键列不支持带参数设置。您只能选择接收器中的存在列。

您在此处选择作为键的列名将被 ADF 用作后续更新、更新插入和删除的一部分。因此,您必须选择 Sink 映射中存在的列。如果您不想将值写入此键列,请单击“跳过写入键列”。

请参考:映射数据流属性

该参数Key_col在接收器中不存在,即使它具有相同的名称。

更新:

数据流参数:

在此处输入图像描述

如果我们想使用更新,我们必须添加一个 Alter 行:

在此处输入图像描述

接收器,键列选择存在列“名称”:

在此处输入图像描述

管道运行成功:

在此处输入图像描述

在此处输入图像描述

希望这可以帮助。

于 2020-04-21T02:13:42.843 回答
0

是的,这个作品。您只需要在参数值周围加上单引号,如下所示:

“'$Key_col'”

我在此解决方案中使用双引号进行字符串插值,因此将其完全粘贴到您的表达式中。

于 2020-04-21T04:17:43.997 回答