如果您遇到此问题,我发现了三件事可以尝试。在这三种情况中至少有两种情况下,SSIS 忽略了我的输入文件的行,只显示了上面的警告。因此,我不建议忽略此警告!
第 1 步:验证您的平面文件是否有效
当您的输入文件无效时会出现此错误。如果您的输入文件有数百万行,就像我的一样,这可能特别难以检测,但是发现文件格式违规至关重要,因为 SSIS 会很乐意给您这个警告并继续前进而不导入有问题的行,或者,在某些情况下,违规行之后的行。我发现发现源文件问题的最简单方法是检查成功导入的行数。如果它与您在平面文件中期望的数字有很大不同,则中间某处可能出现问题。
第 2 步:在末尾尝试一条虚拟线(仅限固定宽度)
如果您使用的是固定宽度格式的输入文件,Microsoft 可能会为您提供有用的知识库文章。基本上,他们建议您在文件末尾添加一个虚拟行。
我没有使用固定宽度的文件,所以我不能说这种技术有多有用。
第 3 步:关闭非文本的文本限定
这是一个棘手的问题,因为我相信TextQualified属性默认为True。如果您的输入文件使用非文本字段(整数等),那么您必须告诉 SSIS 它不应期望这些列被限定为文本。本质上,尽管看起来完全有效,但您的输入文件将无效。
TextQualified是平面文件连接管理器中列的属性。
要更改它,请打开您的连接管理器,单击“高级”,然后单击非文本列。确保TextQualified属性设置为False。您需要对所有非文本列执行此操作。