【问题标题】:SSIS Package not reading the last row in flat fileSSIS包未读取平面文件中的最后一行
【发布时间】:2018-08-30 23:42:01
【问题描述】:

我有 SSIS 包,它会将 .EXT 文件加载到我的数据库表中。

The package Flat File connection manager Editor properties are
   Format: Ragged Right
   Code Page: 1252 ANSI (Latin-I)
   Text Qualifier: <None>
    Header Row Delimiter: <LF>

在加载前尝试预览文件时,我可以看到列中的所有行和 Flat File 连接管理器编辑器的预览选项卡。

但在实际加载文件时,仅最后一条记录不会导入表中。 它加载正常,但它仍在每天处理文件。 只有两天的文件,它没有导入最后的记录。我正在寻找根本原因。

我怀疑文件有问题,但我没有发现文件之间有任何差异 工作和不工作版本的文件。

请建议我们解决同样的问题。如果需要任何信息,请告诉我。

【问题讨论】:

  • 这是一个非常明显的问题.. 编辑您的文件并在文件的最后一个字符后输入line feed(简单地在最后一行后输入一个新行)。然后再试一次。
  • 用notepad++之类的方式查看文件并显示特殊字符。您可能会发现它缺少记录分隔符。
  • @Amnesh Goel,这是我看的第一件事。当我检查文件时,有换行符。我不确定还有什么导致问题。
  • 好的,告诉我你的行终止符是什么?并且您是否检查过最后是否有相同的行终止符。 QuickFix .. 只需复制并粘贴最后一行,然后再试一次。如果您的系统只读取最后一行一次,那么它确认问题出在最后一行终止符上。如果发生这种情况,则从最后一行删除所有内容,然后它将起作用。
  • @Nick,McDermaid,我在 Notepad++ 中打开了文件,CRLF 特殊字符在那里..其他导致问题的原因..任何其他建议..

标签: ssis


【解决方案1】:

我遇到了同样的问题并进行了一些研究以找到对我有用的解决方案。显然,SSIS 包曾经经历过从早期版本的转换。转换完成后,平面文件连接上的文本限定符属性被破坏。最初是&lt;none&gt;,但转换后将其更改为_x003C_none_x003E_。我打开了平面文件连接管理器并将常规选项卡上的文本限定符属性改回了正确的值&lt;none&gt;

感谢 this thread 提供答案。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。我的平面文件没有任何文本限定符。当我添加文本限定符时,包成功运行。我的猜测是文件被读取为文本,并且在最后一行无法识别 CRLF。

    【讨论】:

      【解决方案3】:

      如果您可以提供文件中的数据样本

      【讨论】:

        猜你喜欢
        • 2016-06-13
        • 2016-03-28
        • 2019-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多