Azure Data Factory IF条件活动类型不匹配错误排查与解决
问题原因与解决方法
错误原因
- 表达式格式不符合ADF要求:Azure Data Factory中所有表达式必须以
@开头,你当前的表达式and(@equals(int(variables('IsRunning')),1),@equals(int(variables('IsRunning1')),1))缺少开头的@,导致ADF将整个内容识别为普通字符串,而IF Condition活动的expression字段要求返回布尔(Bool)类型,因此触发类型不匹配错误。 - 变量的字符串定义本身无问题:你设置的变量
@string(length(activity('Filter').output.value))是将Filter活动结果的长度转为字符串存储,这部分逻辑合理,后续用int()转换为整数比较的操作本身不会引发类型错误。
解决方法
方法1:修正表达式格式
在and函数前添加@符号,确保ADF将其解析为布尔表达式:
@and(@equals(int(variables('IsRunning')), 1), @equals(int(variables('IsRunning1')), 1))
直接将上述内容输入IF Condition的Expression输入框,不要添加任何引号包裹。
方法2:简化表达式(推荐)
既然变量本身是字符串类型,可直接比较字符串值,省去int()转换步骤,效率更高:
@and(equals(variables('IsRunning'), '1'), equals(variables('IsRunning1'), '1'))
内容的提问来源于stack exchange,提问作者Pablo
相关产品推荐
相关产品推荐

