Synapse Dataflow unpivot报错:XX列非相同unpivot数据类型
Synapse Dataflow Unpivot 报错“XX column is not of the same unpivot datatype” 解决办法
- 检查列的精度与小数位数:Decimal类型的判定不光看类型名,还得看精度(precision)和小数位数(scale)。哪怕都标着Decimal,
Decimal(18,2)和Decimal(10,0)也会被判定为不同类型。在Dataflow的Schema视图里展开列类型,查看每个目标列的完整参数,必须确保完全一致。 - 强制统一列类型:如果精度/小数位数不一样,用
Derived Column把所有要Unpivot的列转成相同的Decimal类型,比如执行toDecimal(目标列名, 18, 2),让所有列用完全相同的精度和小数位数,之后再做Unpivot操作。 - 覆盖自动推断类型:上游数据源可能存在隐式类型转换,导致列类型看起来一致但底层有差异。在Unpivot前面加一个
Select转换,手动指定所有目标列的类型为统一的Decimal,覆盖系统自动推断的类型。 - 清除调试缓存:Dataflow的调试缓存可能留着旧的类型信息,引发报错。在调试面板里点清除缓存,或者重启调试会话后重新运行。
- 用Data Preview验证:在Unpivot之前的转换节点打开Data Preview,查看每列的类型详情,确认所有要Unpivot的列的精度、小数位数完全匹配,别只依赖Schema视图的简略显示。
内容的提问来源于stack exchange,提问作者user19504539
相关产品推荐
相关产品推荐

