You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向Decimal类型列插入空值时触发TypeConversionFailure错误求助

问题描述

向Decimal类型列插入空值时触发以下错误:

ErrorCode=TypeConversionFailure,Exception occurred when converting value '' for column name 'xyz' from type 'String' (precision:, scale:) to type 'Decimal' (precision:18, scale:0). Additional info: The input wasn't in a correct format.

尝试过以下两种处理逻辑,均未解决问题:

  • 判断值是否为字符串'null':
    @if(equals(activity('Lookup1').output.value[int(variables('i'))].eftEnrollmentUniqueIdentifier,'null'),'NULL',activity('Lookup1').output.value[int(variables('i'))]
    
  • 判断值是否为空字符串''

Lookup活动输出中,目标字段eftEnrollmentUniqueIdentifier存在原生null值(非字符串类型)。

解决方案

核心问题

你之前的判断针对的是字符串类型的'null'或'',但Lookup输出里的空值是原生null类型,两者类型不匹配导致判断失效;同时返回字符串'NULL'无法被Decimal列识别,依然会触发类型转换错误。

有效处理逻辑

方法1:用empty()函数兼容空字符串和原生null

empty()函数可同时识别空字符串''和原生null,匹配时返回原生null(Decimal列可接收的空值类型):

@if(empty(activity('Lookup1').output.value[int(variables('i'))].eftEnrollmentUniqueIdentifier), null, activity('Lookup1').output.value[int(variables('i'))].eftEnrollmentUniqueIdentifier)

方法2:直接判断原生null

直接匹配Lookup输出中的原生null值,返回原生null:

@if(equals(activity('Lookup1').output.value[int(variables('i'))].eftEnrollmentUniqueIdentifier, null), null, activity('Lookup1').output.value[int(variables('i'))].eftEnrollmentUniqueIdentifier)

关键注意点

必须返回原生null(不带引号),而非字符串'NULL',否则数据库依然无法将字符串转换为Decimal类型。

内容的提问来源于stack exchange,提问作者Prasanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 02:10:06