首页 文章

Azure数据工厂:对于特定属性,每个item()值都不存在

提问于
浏览
0

我有一个具有存储过程(SP)的每个活动,其中我显然使用item()输入值 .

现在假设SP的输入值是item() . a,item() . b和item() . c

问题:对于foreach的一些迭代,item() . b不存在预期的 . 那么我应该如何在存储过程中处理它?因为在这个时间点它执行SP时给出了一个错误:

“模板语言表达式'item() . b'无法求值,因为属性'b'不存在,可用属性为'a,c'

或者我应该如何克服数据工厂中的这种故障?

显然,数据工厂检查为empty()但它没有检查exists() .

2 回答

  • 3

    你可以使用“?” . 即,项目()? . b

    请参考question mark和相关的post .

  • 0

    我不认为你可以在数据工厂解决这个问题 . 您可以使用String(Item())将其转换为以下格式的Json字符串:

    {
        'a':'value',
        'b':'value',
        'c':'value'
    }
    

    然后,您可以使用一些有创意的SQL在存储过程中处理它:

    DECLARE @jsonParams NVARCHAR(255) = '
        {
            "a":"a value",
            "c":"b value"
        }' 
    
    
    DECLARE @paramA VARCHAR(10) = (SELECT JSON_VALUE(@jsonParams,'$.a'))
    DECLARE @paramB VARCHAR(10) = (SELECT JSON_VALUE(@jsonParams,'$.b'))
    DECLARE @paramC VARCHAR(10) = (SELECT JSON_VALUE(@jsonParams,'$.c'))
    

相关问题