【问题标题】:Why is SSIS OLE DB Import Not Importing Last Line of a text File?为什么 SSIS OLE DB 导入不导入文本文件的最后一行?
【发布时间】:2011-09-13 16:33:59
【问题描述】:

我在 SSIS 2008 中创建了一个基本数据流任务,它从基本文本文件中读取信息并将其导入数据库。该文件由以 {CR}{LF} 结尾的行分隔,每个字段由竖线 {|} 分隔。

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

在文件连接管理器中显示预览中的所有行,在我目前的情况下为 5 行。此外,在平面文件源编辑器的预览中,它显示所有 5 行,但在 OLE DB 目标中,预览仅显示 4 行。知道是什么原因造成的吗?谢谢!

【问题讨论】:

  • 我检查了,我确实安装了 SP2。我有很多其他人看过它,但从那以后就没有了。这是一个超级基本的读取文件导入到数据库中,因为它错过了最后一行。尝试关闭 SSIS,但这也无济于事。我唯一能想到的就是重建它,看看是否有帮助。
  • 我已经有 Notepad++ 并仔细检查了它最后是否有 {CR}{LF}。这就是为什么它没有成功,因为它跳过了最后一行。

标签: sql-server-2008 ssis io oledb flat-file


【解决方案1】:

SSIS is dropping a record on flat file source import 上查看最后一个答案。将所有列的平面文件对象 TextQualified 值设置为 false 解决了我的问题。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我尝试编辑文件并在最后添加了一个额外的 CRLF,但没有帮助。我什至尝试添加多个,它没有改变任何东西。我什至尝试在最后一行之前处理 1 行,但它仍然没有像应有的那样添加两次,因为表中没有主键。
    • 你最终让它工作了吗?从上面的评论看起来你仍然有问题。我也有这个问题,还没有解决方案。额外的 CRLF 仍然无法正常工作。
    【解决方案3】:

    我相信这是 SSIS 的一个错误。我在两个版本 10.0.5500.0 和 10.0.2531.0 上对其进行了测试。此问题在 10.0.5500.0 中确实出现,但在更高版本上确实出现。为了解决旧版本中的问题,我必须在文件末尾添加一个额外的 cr lf,并将 Text Qualified 值设置为 false,如 user1298950 所写。

    【讨论】:

      【解决方案4】:

      我在使用 SQL Server 2008 R2 时得到了同样的结果。经过大量搜索和拔毛发现安装 SQL Server 2008 R2 SP2 解决了这个问题。请注意,此错误不是 SP2 发行说明的一部分 - 但它已解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-19
        • 2023-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多