FIX: 0xC02020A1、 0xC020902A、 0xC0202092 和 0xC0047038 错误可能会出现一次当您尝试运行的 SSIS 2005 程序包,如果您使用平面文件源中的 multi-character 列分隔符

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 2445326

症状
请考虑以下情形:
  • 在商业智能开发 Studio (BIDS) 创建一个 SQL Server 2005 集成服务 (SSIS) 包。
  • 您可以使用平面文件源数据的数据流任务中的文本文件中读取数据。
  • 平面文件源中使用 multi-character 列分隔符。 例如对于 multi-character 列分隔符是三颚化符的字符 (字符字符串~~~).
  • 该文本文件包含大量的数据。 例如对于该文本文件包含 20000 多个记录。
  • 运行 SSIS 包。
这种情况下在 SSIS 包可能会失败。 此外,您会收到以下错误消息:

错误: 0xC02020A1 在数据流任务,平面文件源 [1]: 数据转换失败。 数据转换为列的"<column_name></column_name>"返回状态值 4 和状态文本被截断文本或一个或多个字符在目标代码页中有不匹配。
在数据流任务,平面文件源 [1] 的错误: 0xC020902A: 的"输出列"<column_name></column_name>"(199)"失败,因为出现截断,并截断行处置,在"输出列"<column_name></column_name>"(199)"指定在截断的故障。 指定组件的指定对象上出现截断错误。
错误: 在数据流任务,平面文件源 [1] 0xC0202092: 处理文件时出现错误"<path_of_the_flat_file></path_of_the_flat_file>"上的数据行<row_number></row_number>.
错误: 0xC0047038 数据在数据流任务,SSIS.Pipeline: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。 在组件"平面文件源"(1) 返回的错误代码 0xC0202092 上 PrimeOutput 方法。 管道引擎调用 PrimeOutput() 时,该组件返回故障代码。 失败代码的含义由组件,但该错误是致命和管道停止执行。 可能在此之前张贴与故障有关的详细信息的错误消息。

原因
因为在输入的缓冲区的平面文件分析器错误地将 multi-character 分隔符划分为两个部分,将发生此问题。
解决方案

服务包信息

若要解决此问题,获取最新的 service pack,SQL Server 2005。

有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
913089如何获取最新的 service pack,SQL Server 2005
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

警告:本文已自动翻译

Thuộc tính

ID Bài viết: 2445326 - Xem lại Lần cuối: 11/03/2010 18:56:00 - Bản sửa đổi: 2.0

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2445326 KbMtzh
Phản hồi