天蓝色数据工厂:在查询中使用变量

时间:2020-06-05 10:49:54

标签: azure-data-factory

我创建了一个复制活动,该复制活动将数据从内部数据库复制到Azure SQL数据库。 我需要对dynamiccaly查询进行修改,使其采用一定范围的日期,因此我创建了两个变量:
-暗示
-结束日期
我想在where子句中使用的变量,但是我不知道如何引用变量。我试过了,但是没用:

"SELECT * FROM tableOnPrem WHERE dateOnPrem BETWEEN '@variable('inidate')' AND '@variable('enddate')'

请帮助。 谢谢

2 个答案:

答案 0 :(得分:2)

在管道中(如“复制”活动一样),您将需要使用Pipeline Expression Language(PEL)动态构建查询字符串。最好的方法是使用concat函数来组合查询:

unbelievable

这很快就会变得很复杂,因此您需要特别注意逗号,括号,“''和“''''。

请注意,“ @”符号仅在表达式的开头出现一次。另外,要引用管道变量,请调用“ variable s ”函数。

答案 1 :(得分:0)

要处理的另一个选项是将它们定义为管道参数pipeline-prameters。例如,如果您将参数定义为

  • 开始日期
  • 结束日期

您可以将查询写成如下形式

SELECT * FROM tableOnPrem WHERE dateOnPrem BETWEEN @{pipeline().parameters.start_date} AND @{pipeline().parameters.end_date}