gpt4 book ai didi

ssis - 为什么 SSIS 提示 "There is a partial row at the end of the file"?

转载 作者:行者123 更新时间:2023-12-01 10:05:50 25 4
gpt4 key购买 nike

我正在使用 SSIS 中的数据流任务将平面文件导入数据库。该文件非常简单:每行包含三个以逗号分隔的值。但是,每当我运行此任务时,我都会收到来自平面文件组件的警告:

Warning: 0x8020200F: There is a partial row at the end of the file.

无论文件大小如何,这个警告似乎都会发生:即使文件中只有少数几行,经过视觉验证(带有扩展字符和不可见的东西),我仍然会收到它。此外,文件末尾是否有一个空行或者我只是在没有尾随 CR+LF 的情况下结束它似乎并不重要。

我怎样才能摆脱这个警告,以便我可以在启用 WarnAsError 的情况下运行我的包?

(顺便说一句,似乎其他人可能在 There is a partial row at the end of the file 中遇到了类似的问题,尽管这不是什么大问题。)

最佳答案

如果您遇到此问题,我发现了三个可以尝试的方法。在这三种情况中,至少有两种情况,SSIS 忽略了我的输入文件的行,仅显示上述警告。因此,我不建议忽略此警告!

第 1 步:验证您的平面文件是否有效

当您有无效的输入文件时,将出现此错误。如果您的输入文件有数百万行,这可能特别难以检测,就像我的一样,但是发现文件格式违规是至关重要的,因为 SSIS 会很乐意向您发出此警告并继续前进而不导入有问题的行,或者,在某些情况下, 违规行之后的行。我发现发现源文件问题的最简单方法是检查成功导入的行数。如果它与您在平面文件中期望的数字有很大不同,则中间某处可能出了问题。

第 2 步:在末尾尝试一个虚拟行(仅限固定宽度)

如果您使用的是固定宽度格式的输入文件,Microsoft 可能会提供有用的 KB article为你。基本上,他们建议您在文件末尾添加一个虚拟行。

我没有使用固定宽度的文件,所以我不能说这个技术有多有用。

第 3 步:关闭非文本的文本限定条件

这是一个棘手的问题,因为我相信 TextQualified 属性默认为 True。如果您的输入文件使用非文本字段(整数等),那么您必须告诉 SSIS 它不应期望这些列被限定为文本。本质上,尽管看起来完全有效,但您的输入文件将无效。

TextQualified 是平面文件连接管理器中列的属性。

Connection Managers

要更改它,请打开您的连接管理器,单击“高级”,然后单击非文本列。确保 TextQualified 属性设置为 False。您需要对所有非文本列执行此操作。

enter image description here

关于ssis - 为什么 SSIS 提示 "There is a partial row at the end of the file"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10888616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com