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))
当尝试将变量值设置为以下表达式时,这个简单的表达式在设计时正确计算:
@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))