【问题标题】:ADF Creating a LookUp Activity Query with a VariableADF 使用变量创建查找活动查询
【发布时间】:2021-03-06 03:50:09
【问题描述】:

我们在最终测试中有一个错误。我正在尝试在查找活动中进行以下查询:

SELECT ShortName, EEOXrefCode FROM [MercerStagingDev].[MILKY-WAYTEST\AppSQLVST4DotNetDev-R].[Battelle 工作分配字段作业副本] WHERE XRefCode = @variables('JobXRefCode')

我的设置变量显示了正确的字符串“JobXrefCode”,但出现了一个疯狂的错误。请帮忙;这个周末我必须弄清楚如何做这个“语法”。 谢谢!! 迈克·凯瑟

错误代码 2100 故障排除指南 故障类型 用户配置问题 细节 失败发生在“源”端。 ErrorCode=SqlOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=数据库操作失败并出现以下错误:'必须声明标量变量“@variables”。',Source=,''Type=System。 Data.SqlClient.SqlException,Message=必须声明标量变量“@variables”。,Source=.Net SqlClient Data Provider,SqlErrorNumber=137,Class=15,ErrorCode=-2146232060,State=2,Errors=[{Class= 15,Number=137,State=2,Message=必须声明标量变量“@variables”。,},],'

【问题讨论】:

    标签: azure azure-data-factory-2


    【解决方案1】:

    请试试这个表达方式:

    SELECT ShortName, EEOXrefCode 
    FROM [MercerStagingDev].[MILKY-WAYTEST\AppSQLVST4DotNetDev-R].[Copy of Battelle Work Assignment Fields Jobs] 
    WHERE XRefCode = '@{variables('JobXRefCode')}'
    

    更新:

    表达式也可以出现在字符串中,使用一个叫做 字符串插值,其中表达式包含在 @{ ... } 中。为了 示例:“名称”:“名字:@{pipeline().parameters.firstName} 最后 名称:@{pipeline().parameters.lastName}"

    使用字符串插值,结果总是一个字符串。

    所以当你做这样的 SQL:SELECT * FROM TableName WHERE ColumnName = 'value' 时,你可以使用这个表达式。

    以下是 ADF 教程中的一些示例:

    参考:

    Expressions and functions in Azure Data Factory

    Incrementally load data from Azure SQL Database to Azure Blob storage using the Azure portal

    Incrementally load data from multiple tables in SQL Server to a database in Azure SQL Database using the Azure portal

    【讨论】:

    • 谢谢!做到了!在这种情况下,您何时知道何时使用大括号?再次感谢!迈克·凯瑟
    • @MikeKiser 更新了答案。你可以看看。
    • 谢谢@Steve Zhao!这帮助很大!我现在完全明白了……迈克·凯瑟
    • @MikeKiser 欢迎您。如果你觉得我的回答对你有帮助,可以标记一下。非常感谢。
    猜你喜欢
    • 2021-07-24
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2018-02-27
    • 1970-01-01
    相关资源
    最近更新 更多