Azure数据工厂动态内容参数

时间:2019-02-09 15:01:03

标签: azure azure-data-factory

我正在尝试使用Azure数据工厂从源表中将最后一次运行时的数据加载到lastmodifieddate。

这工作正常:

@concat(' SELECT  * FROM dbo. ',
        item().TABLE_list ,
       ' WHERE   modifieddate > DATEADD(day, -1, GETDATE())')"

当我使用时:

@concat(' SELECT  * FROM dbo.  ',
         item().TABLE_list ,
        '  WHERE   modifieddate > @{formatDateTime(
                  addhours(pipeline().TriggerTime-24)),
                  ''yyyy','-','MM','-','ddTHH',':','mm',':','ssZ''}')

获取错误为““ errorCode”:“ 2200”,

"message": "Failure happened on 'Source' side. 'Type=System.Data.SqlClient.SqlException,Message=Must declare the scalar variable \"@\".,Source=.Net SqlClient Data Provider,SqlErrorNumber=137,Class=15,ErrorCode=-2146232060,State=2,Errors=[{Class=15,Number=137,State=2,Message=Must declare the scalar variable \"@\".,},],'",
    "failureType": "UserError",
    "target": "Copy Data1"
}
  • 我在做什么错?

  • 我需要在> where条件之后动态传递管道的上次运行时间日期。

1 个答案:

答案 0 :(得分:1)

选择*从dbo。@ {item()。TABLE_LIST}中修改日期> @ {formatDateTime(addhours(pipeline()。TriggerTime,-24),'yyyy-MM-ddTHH:mm:ssZ')}

您可以使用字符串插值表达式。 Concat使事情变得复杂。

https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions#expressions