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

SSIS包中无法将DT_STR转换为DT_I8,求可行转换表达式

解决DT_STR转DT_I8的转换失败问题

转换失败通常是因为字符串存在干扰字符、空值或数值超出大整数范围,以下是分场景的可行表达式:

  • 清理前后空格后转换
    若字符串带前导/后导空格,先去除再转换:

    DT_I8(LTRIM(RTRIM(Column_Name)))
    
  • 处理带千分位逗号的字符串
    如果字符串包含千分位分隔符(如"1,234,567"),先替换逗号再转换:

    DT_I8(REPLACE(LTRIM(RTRIM(Column_Name)), ",", ""))
    
  • 处理空值或无效数字
    用判断确保仅有效数字才转换,无效值返回默认值(示例为0):

    ISNULL(DT_I8(CASE WHEN ISNUMERIC(LTRIM(RTRIM(Column_Name))) = 1 THEN LTRIM(RTRIM(Column_Name)) ELSE "0" END), 0)
    

    若字符串包含货币符号(如$),需先替换符号:

    DT_I8(REPLACE(REPLACE(LTRIM(RTRIM(Column_Name)), "$", ""), ",", ""))
    
  • 处理超出DT_I8范围的数值
    DT_I8的取值范围是-9223372036854775808到9223372036854775807,若数值可能超出范围,可先判断长度再处理:

    CASE WHEN LEN(LTRIM(RTRIM(Column_Name))) > 19 THEN 0 ELSE DT_I8(LTRIM(RTRIM(Column_Name))) END
    

建议先定位出错行的字符串内容,根据实际数据格式选择对应表达式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:43:11