更新:
我能够重现您在问题中添加的错误信息。当您在行中拥有比平面文件连接管理器中定义的列分隔符更多时,就会发生错误。
以下是一个简单的示例来说明它。我创建了一个如下所示的简单文件。
![Sample file](https://istack.dev59.com/c36wA.webp)
我创建了一个包,并使用下面显示的设置配置了平面文件连接管理器。
![Flat file General](https://istack.dev59.com/bih05.webp)
![Flat file Column 0](https://istack.dev59.com/gBQRu.webp)
![Flat file Column 1](https://istack.dev59.com/hxzTi.webp)
![Flat file Advanced](https://istack.dev59.com/rLywd.webp)
![Flat file Preview](https://istack.dev59.com/nhaH4.webp)
我使用数据流任务配置了该软件包,以读取文件并将数据填充到数据库表中。但是当我执行该软件包时,它失败了。
![Failed](https://istack.dev59.com/7csJA.webp)
在BIDS上点击执行结果
选项卡。它会显示与您在问题中发布的相同消息。
[Flat File Source [44]] Error: Data conversion failed. The data conversion for column "Column 1" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
[Flat File Source [44]] Error: The "output column "Column 1" (128)" failed because truncation occurred, and the truncation row disposition on "output column "Column 1" (128)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
[Flat File Source [44]] Error: An error occurred while processing file "C:\temp\FlatFile.txt" on data row 2.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "Flat File Source" (44) returned error code 0xC0202092. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
希望这能帮助您识别问题。
![Execution results](https://istack.dev59.com/DKryt.webp)
之前的回答:
我认为您文件中最后一行的最后一个字段的值可能超过了Flat File Connection Manager上最后一列的OutputColumnWidth属性的值。
在SSIS包上右键单击Flat File Connection Manager。在Flat File Connection Manager Editor上点击Advanced选项卡页面。点击最后一列并检查OutputColumnWidth属性上的值。
现在,请验证导致您的包失败的文件中最后一行的最后一个字段的数据长度。
![OutputColumnWidth](https://istack.dev59.com/MXY5s.webp)
如果这是问题的原因,以下是两种可能的解决方案:
将最后一列的OutputColumnWidth
属性增加到适当的长度,以满足您的要求。
如果您不关心截断警告,可以更改平面文件源编辑器中最后一列的截断错误输出。双击Flat File Source Editor
,单击Error Output
。将截断列值更改为忽略失败
或重定向行
。我更喜欢Redirect row
,因为它可以通过将无效数据重定向到单独的表格来跟踪传入文件中的数据问题,并采取必要的措施来修复数据。
希望这能给您解决问题的思路。
![Error output](https://istack.dev59.com/mdqSH.webp)