2011-09-13 45 views
2

我在SSIS 2008中创建了一个基本的数据流任务,它从基本文本文件读取信息并将其导入到数据库中。该文件以分隔符结尾的行{CR} {LF},每个字段由垂直条{|}分隔。为什么SSIS OLE DB导入不导入文本文件的最后一行?

我已验证每行都以我正在导入的文件中的{CR} {LF}结尾,但出于某种原因,它不会导入文件中的最后一行。如果只有1行,它不会导入到数据库中。

在文件连接管理器中显示预览中的所有行,在我目前的情况下是5行。此外,在平面文件源编辑器中的预览中,它显示全部5行,但在OLE DB目标中,预览仅显示4行。任何想法可能会造成这种情况?谢谢!

+0

我检查了一下,我确实安装了SP2。我有多个其他人看看它,因为它没有。这是一个超级基本的读取文件导入到数据库,并没有做出为什么它错过了最后一行。试图关闭SSIS,这也没有帮助。我唯一能想到的就是重建它,看看是否有帮助。 – buzzzzjay

+0

我已经有了Notepad ++,并且已经检查了它最后有{CR} {LF}。这就是为什么它不能让它跳过最后一行。 – buzzzzjay

回答

1

有时为了正确读取这些文件,需要在最后一行结尾处有一个回车符,并在末尾有效地创建一个空行。

如果文件不是这样提供的,那么您可能需要一个脚本组件来修改它。

+0

我试着编辑这个文件,并在最后添加了一个额外的CRLF,它没有帮助。我甚至尝试添加多个,它并没有改变任何东西。我甚至试图在最后一行之前应对1行,但它仍然没有像应该那样添加两次,因为表中没有主键。 – buzzzzjay

+0

你最终得到这个工作?从上面的评论看来你仍然有问题。我还没有解决这个问题。额外的CRLF仍然无法使用。 – doug

1

我相信这是一个SSIS的错误。我测试了两个版本10.0.5500.0和10.0.2531.0。在10.0.5500.0中确实发生此问题,但在over版本上发生此问题。为了解决旧版本中的问题,我不得不在文件的末尾添加一个额外的文件,以及在user1298950编写时将Text Qualified值设置为false。

1

我和SQL Server 2008 R2一样。经过大量的搜索&拔毛发现,安装SQL Server 2008 R2 SP2可以解决问题。请注意,此错误不是SP2发行说明的一部分 - 但它会对其进行分类。