Azure data factory azure数据工厂:在查询中使用变量

Azure data factory azure数据工厂:在查询中使用变量,azure-data-factory,Azure Data Factory,我创建了一个复制活动,将数据从本地数据库复制到Azure SQL数据库。 我需要动态修改查询,使其具有日期范围,因此我创建了两个变量: -inidate -结束日期 我想在where子句中使用,但我不知道如何引用变量。我试过这个,但不起作用: "SELECT * FROM tableOnPrem WHERE dateOnPrem BETWEEN '@variable('inidate')' AND '@variable('enddate')' 请帮忙。 meny谢谢在类似复制活动的管道中,您需

我创建了一个复制活动,将数据从本地数据库复制到Azure SQL数据库。 我需要动态修改查询,使其具有日期范围,因此我创建了两个变量: -inidate -结束日期 我想在where子句中使用,但我不知道如何引用变量。我试过这个,但不起作用:

"SELECT * FROM tableOnPrem WHERE dateOnPrem BETWEEN '@variable('inidate')' AND '@variable('enddate')'
请帮忙。
meny谢谢

在类似复制活动的管道中,您需要使用PEL动态构建查询字符串。最好的方法是使用函数将查询拼凑在一起:

@concat('SELECT * FROM tableOnPrem WHERE dateOnPrem BETWEEN ''',variables('inidate'),''' AND ''',variables('enddate'),'''')
这可能会很快变得复杂,所以您需要特别注意逗号、括号和


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

在类似复制活动的管道中,需要使用PEL动态构建查询字符串。最好的方法是使用函数将查询拼凑在一起:

@concat('SELECT * FROM tableOnPrem WHERE dateOnPrem BETWEEN ''',variables('inidate'),''' AND ''',variables('enddate'),'''')
这可能会很快变得复杂,所以您需要特别注意逗号、括号和


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

另一个处理选项是将它们定义为管道参数。例如,如果将参数定义为

开始日期 结束日期 您可以像下面这样编写查询

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

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

开始日期 结束日期 您可以像下面这样编写查询

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