【问题标题】:Azure Data Factory V2 update an SQL recordAzure 数据工厂 V2 更新 SQL 记录
【发布时间】:2021-04-03 19:31:34
【问题描述】:

我想在 Azure 数据工厂复制活动中更新 mysql 数据库中的值。基本上,我想更新与文件复制日志对应的列,类似于下面的示例

UPDATE database.filetable
set database.filetable.file_date = '@{utcNow()}'
WHERE database.filetable.file_id = 'xyz'

有可能吗?什么是正确的方法。当这个逻辑出现错误时:

“源”端发生故障。 ErrorCode=InvalidParameter,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=属性'schema'的值无效:'值不能为空。参数名称:schema'.,Source=,''Type=System.ArgumentNullException,Message=Value 不能为空。参数名称:schema,Source=Microsoft.DataTransfer.ClientLibrary,'

【问题讨论】:

  • 为什么不简单地使用mysql函数NOW()或UTC_TIMESTAMP()
  • 嗨@elasticSol,希望你做得很好。如果我的回答对你有帮助,希望你能采纳。这对其他社区成员可能是有益的。谢谢。
  • 嗨@LeonYue 我喜欢你的解决方法,但我遇到了挑战
  • @elasticSol 有什么挑​​战?我们都很乐意为您提供帮助。
  • 嗨@elasticSol,无论您遇到什么挑战,都可以在此处发布问题。请告诉我们。

标签: mysql azure-data-factory-2


【解决方案1】:

数据工厂参数不支持表达式/函数。我建议你使用变量和set variable active 来实现。

例如:

然后将变量传递给您的副本活动,查询选项动态内容如下:

@concat('UPDATE database.filetable set database.filetable.file_date =',variables('current_date'),'  
WHERE database.filetable.file_id = xyz')

HTH。

【讨论】:

    猜你喜欢
    • 2019-01-13
    • 2018-10-29
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    相关资源
    最近更新 更多