我创建了一个复制活动,该复制活动将数据从内部数据库复制到Azure SQL数据库。
我需要对dynamiccaly查询进行修改,使其采用一定范围的日期,因此我创建了两个变量:
-暗示
-结束日期
我想在where子句中使用的变量,但是我不知道如何引用变量。我试过了,但是没用:
"SELECT * FROM tableOnPrem WHERE dateOnPrem BETWEEN '@variable('inidate')' AND '@variable('enddate')'
请帮助。 谢谢
答案 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}