【问题标题】:Dynamic query in azure data factory based on array variableazure数据工厂中基于数组变量的动态查询
【发布时间】:2021-04-15 04:15:58
【问题描述】:

我想创建一个复制活动,使用动态查询,基于数组变量,在天蓝色数据工厂内,例如我只想加载数据库 X 的表 A 中的 ID 信息Y 数据库中的表 B。

与变量 ID_Variable 关联的设置变量活动中的代码将是: 从tableA中选择不同的ID;

我在复制活动中这样尝试: select * from tableB where ID in (@variables('ID_Variable'));

但它没有工作,提前谢谢

【问题讨论】:

  • 您是否有一个查找活动来运行此 SQL Select distinct ID from tableA,然后将其输出传递给您的变量 ID_Variable?如果没有,您能否提供您的管道和 ID_Variable 示例数据的屏幕截图?

标签: azure-data-factory-2 dynamic-queries


【解决方案1】:

这是因为 IN 子句需要一个逗号分隔的引用值列表,例如(1,2,3,4),但 ADF 中的数组值是 [1,2,3,4]。所以它没有工作。

您需要将数组值更改为括号中的逗号分隔值。 简单的方法是将您的第一个 SQL Select distinct ID from tableA 更改为

select stuff(
  (
    select distinct ','''+ CONVERT(VARCHAR(32), ID) +''''
    from   tableA
    for    xml path('')
  )
  , 1, 1, ''
) as in_clause

如果可能的话。否则,您需要通过 ADF 中的额外活动来执行此操作。 可以参考这个error called Incorrect Syntax near in Azure DataFactory

【讨论】:

    猜你喜欢
    • 2022-11-22
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多