Azure Data Factory映射数据流缓存接收器Case语句表达式报错求助
解决Azure Data Factory映射数据流中CASE等效表达式的类型不匹配问题
错误原因:
你编写的表达式里,contains函数的第二个参数用了布尔表达式#item==ID,但contains要求第二个参数是与缓存集合元素同类型的值(此处缓存存储的是整数ID),布尔值和整数类型不匹配,直接触发了类型错误。同时缓存名称的引用不需要额外加#语法。正确的派生列表达式:
直接检查当前行的ID是否存在于缓存的ID集合中即可:iif(contains(cachedIDs, ID), "upserted row", "deleted row")额外注意事项:
- 确保当前数据流中的
ID字段类型与缓存中的ID完全一致(均为整数)。如果当前ID是字符串类型,需要先转换为整数:iif(contains(cachedIDs, toInteger(ID)), "upserted row", "deleted row") - 再次确认缓存接收器的查询
select ID from dbo.aaa返回的ID确实是整数类型,可通过「数据预览」验证。
- 确保当前数据流中的
内容的提问来源于stack exchange,提问作者Andrii Rozrutskyi
相关产品推荐
相关产品推荐

