2012-02-24 63 views
1

我有一个SSIS包,以Excel为源,将数据加载到OLE DB目标。SSIS excel源列名称不匹配错误

今天,它失败,出现错误:

[Excel Source [1531]] Error: Column "Product Value" cannot be found at the datasource.

经过一番努力,我意识到,列名,这曾经是“产品价值”,现在是“产品价值”。

列名称末尾的多余空格导致此问题。有没有解决这类错误的方法?

+0

尝试将文件转换为.csv文件,然后使用SSIS导入。 – Mitul 2012-02-24 03:29:31

+2

如果你知道这个文件是一个异常,你可以通过更新文件(除去额外的空间)来修复它。或者,如果文件将会有这个尾随空间,那么您将不得不更新软件包。如果您打算更新软件包,则可以忽略第一个标题行,然后按列顺序确定它们是什么。我不知道这是否合理。 – 2012-02-24 04:07:43

回答

3

在您的Excel连接管理器中有一个选项,通常选中名为'First Row has columns names';取消检查它。如果你这样做,列将被重命名为'F1,F2,F3'等。然后,您可以打开Excel Source上的高级编辑器并将这些名称更改为任何您需要的名称。这将删除传入标题名称到数据流的映射,并使您的包免受标题名称更改。您将不得不添加额外的组件(条件拆分)来删除第一列,该列现在将包含您不想处理的标题信息。

+0

谢谢Josef对我来说工作得很好,现在我跟着你的脚步走了。 – lch 2012-03-13 20:21:55