为什么我在SSIS中处理了0行?

时间:2016-07-14 00:52:29

标签: sql-server ssis

我正在使用MS Visual Studio 2012 Shell和4.6.01055的.Net框架创建一个SSIS包。 SSIS包具有数据流任务,包括平面文件源,数据源行计数,最终数据集计数和OleDb目标任务。它连接到SQL数据库,我检查过我的连接是否已经过测试 我有一个flatfile连接管理器,它可以获取一个文本文件。在预览部分,它仅显示平面文件连接管理器编辑器中的标题列。错误消息仅在警告级别,并显示以下消息:[Flat File Source [10]]警告:在读取标题行时已到达数据文件的末尾。确保标题行分隔符和要跳过的标题行数是正确的。该文件本身共有19行,第一行是标题行。

我在原始文件的标题名称中有空格。所以在我编辑的文件中,最后一列没有空格。这无法解决问题。最后一列是日期,但我将OutputColumnWidth指定为50,将数据类型指定为字符串[DT_STR]。我将行分隔符设为{CR} {LF}。我将列分隔符设为{|}。运行时,包文件名不会更改。

在locale = English下编辑器的General部分;未检查Unicode;代码页= 1252(ANSI-Latin1);格式=分隔;文字限定符=无;标题行分隔符= {CR} {LF}(我也尝试过CR或LF);要跳过的标题行= 0(我也尝试过1,因为只有一个标题行);如果是第一个数据行,我已检查了列名。

为什么我的预览部分没有数据?为什么我认为我只有标题?

2 个答案:

答案 0 :(得分:0)

在我看来,你的文本文件没有匹配的EOL标记,因此SSIS永远不会拆分行(并将文件视为只有一个大标题)。

尝试在文本编辑器中打开文件,以便查看EOL标记。我知道NotePad ++可以为你做到这一点。

NotePad ++也允许您更改文件的编码,以防万一也是一个问题。

注意:问题还可能是您没有指定正确的列分隔符。如果您在SSIS中指定的分隔符与文件中的字符不匹配,那么SSIS也会认为您有一个标题行,其中所有内容都在第一列中。

答案 1 :(得分:0)

只需添加其他答案即可: 我遇到了同样的问题,当我在记事本中打开文件时,很明显底部有一个空行。

因此:请确保文件的最后一行实际上包含文本。