SSIS中Excel源错误输出列属性不匹配问题求助
问题信息
[Excel Source [290]] 错误:错误输出上的Excel Source.Outputs[Excel Source Error Output].Columns[F1]的属性与其对应数据源列的属性不匹配。
[SSIS.Pipeline] 错误:"Excel Source"验证失败,返回验证状态"VS_NEEDSNEWMETADATA"。
进度:验证 - 完成83%
[SSIS.Pipeline] 错误:一个或多个组件验证失败。
错误:任务验证期间发生错误。
解决方案
刷新Excel源元数据
打开Excel源编辑器,切换到「连接管理器」选项卡,点击刷新按钮,强制SSIS重新读取Excel文件的列元数据。之后进入「高级编辑器→输入和输出属性」,确认外部列、输出列以及错误输出列的DT_WSTR长度均设为1000。调整Excel连接管理器配置
右键Excel连接管理器→「属性」,找到Extended Properties,修改为包含MAXSCANROWS=0的配置,示例:Excel 12.0 Xml;HDR=YES;MAXSCANROWS=0;该配置会让SSIS扫描Excel所有行来确定列的最大长度,避免默认只扫描前8行导致的元数据偏差。
重置错误输出列
在Excel源的高级编辑器中,切换到「输入和输出属性」,找到Excel Source Error Output下的F1列,删除后重新添加,确保其数据类型、长度与输入列完全一致。检查Excel文件状态
关闭所有打开的Excel文件实例,确保文件未被锁定;用Excel的LEN()函数验证目标列最长单元格的字符数,确认无隐藏格式或特殊字符干扰元数据识别。
内容的提问来源于stack exchange,提问作者DataRookie

