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

SSIS问题:无法将Excel源中的空列迁移至SQL Server

SSIS Excel源空列类型不匹配问题解决办法

遇到Excel源全空列被识别为DT_WSTR,和目标DT_NUMERIC类型冲突导致的转换错误,试试这几个方案:

方案1:强制Excel连接管理器的类型识别规则

打开Excel连接管理器的属性,找到Extended Properties,在原有配置后追加:

;IMEX=1;TypeGuessRows=0
  • TypeGuessRows=0会让Excel驱动扫描所有行判断列类型,避免全空列被误识别为文本
  • IMEX=1确保混合类型列按文本处理,配合前者能让全空列更准确地被识别为数值类型

方案2:手动修改Excel源的输出元数据

  • 双击Excel源进入编辑器,切换到Advanced标签
  • 找到目标空列,直接把它的Data Type改成和目标一致的DT_NUMERIC(注意匹配目标列的精度和小数位数)
  • 保存后重新运行包,强制SSIS用指定类型读取该列,空值会自动转为NULL

方案3:用派生列生成NULL值映射目标

  • 在Excel源和OLE DB目标之间添加Derived Column组件
  • 新增派生列,表达式写NULL(DT_NUMERIC, 精度, 小数位),比如目标列是DT_NUMERIC(18,2)就写NULL(DT_NUMERIC,18,2)
  • 把这个派生列直接映射到OLE DB目标的对应列,忽略原来的空列

方案4:临时修改Excel文件(若允许)

  • 在Excel的空列里随便填一个数值(比如0),保存文件
  • 重新配置Excel源,此时驱动会识别该列为数值类型
  • 运行包前删掉Excel里的临时数值,SSIS的元数据已经是数值类型,空值会被正确识别为NULL上传

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:42:09