Azure 数据工厂表达式数据类型转换错误

Azure Data Factory Expression Data Type Conversion Error

当尝试将变量值设置为以下表达式时,这个简单的表达式在设计时正确计算:

@string(sub(int(variables('TargetRecordCount')), int(variables('SourceTotalRecordCount')))) 

但是当管道为运行时,出现以下错误:

The function 'int' was invoked with a parameter that is not valid. The value cannot be converted to the target type

我已确认问题出在变量“SourceTotalRecordCount”上。另一个变量来自 SQL table。有问题的变量是从引用 CSV 文件的查找 activity 中获得的。

查找 activity 的输出是:

设置变量:

@activity('Lookup Source Total Record Count').output.value[0].SourceTotalRecordCount

SetVariable activity定义变量TotalRecordDifference**emphasized text的输入是:

我已经使用了output.FirstRow.SourceTotalRecordCount,但它仍然导致同样的错误。

你的表达看起来是正确的。我重复了你的表达并且能够得到没有错误的输出。

问题可能出在您的传入数据上。根据错误信息,变量值对int转换无效。

您可以通过测试单个输出值来调试,方法是将它们转换为 set 变量中的 int。在将查找输出值存储到变量中时,尝试将其转换为 int 本身以识别错误。

示例:

@string(int(activity('SourceTotalRecordCount').output.value[0].SourceTotalRecordCount))

@string(int(activity('TargetRecordCount').output.value[0].TargetRecordCount))