SSIS:从平面文件源进行数据转换失败

问题描述 投票:0回答:2

美好的一天。 以下是处理平面文件时发生的错误:

  • 任务、文件 [1] 处出现错误:0xC02020A1:数据转换失败。 “第 0 列”列的数据转换返回状态值 4 和状态文本“文本被截断或一个或多个字符在目标代码页中不匹配。”。
  • 任务、文件 [1] 处出现错误:0xC020902A:“输出列“Column 0”(14)”因发生截断而失败,并且“输出列“Column 0”(14)”上的截断行处置指定截断失败。指定组件的指定对象发生截断错误。
  • 错误:任务、文件 [1] 处的 0xC0202092:处理数据行 1 上的文件“filepath”时发生错误。
  • 任务、SSIS.Pipeline 处出现错误:0xC0047038:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“检索输入批处理文件”(1) 上的 PrimeOutput 方法返回错误代码 0xC0202092。当管道引擎调用 PrimeOutput() 时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

源文件是一个平面文件 外部列和输出列的数据类型属性相同: 数据类型:字符串 [DT_STR] 长度是1143

我尝试过尝试属性中的值,但没有成功。错误的原因可能是什么?

另外,我尝试测试了2个文件。第一个文件获得成功结果,而后者则没有。它们之间的区别是,第一个是Dos\Windows,而另一个是UNIX。它会影响平面文件的行为吗?

非常感谢您的投入:)

windows ssis bids flat-file
2个回答
1
投票

转到平面文件连接管理器>>>平面文件源编辑器,然后>>>单击错误输出>>>>,然后转到有问题的列并选择忽略失败。这对我有用。 (也就是说如果列大小正确)


0
投票

[平面文件源2]错误:数据转换失败。 “rowguid”列的数据转换返回状态值 4 和状态文本“文本被截断或一个或多个字符在目标代码页中不匹配。”。

[平面文件源 2] 错误:“平面文件源.Outputs[平面文件源输出].Columns[rowguid]”失败,因为发生截断,并且“平面文件源.Outputs[平面文件”上的截断行处置源输出].Columns[rowguid]”指定截断失败。指定组件的指定对象发生截断错误。

[平面文件源 2] 错误:处理数据行 2 上的文件“D:\Desktop\SSIS\output\PersonPassword_31072023.csv”时发生错误。

[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。平面文件源上的 PrimeOutput 方法返回错误代码 0xC0202092。当管道引擎调用 PrimeOutput() 时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

Image: Error that I faced

Image: See my destination table the maximum length of type varchar length is 30

Image: And source table value of that column length is minimum 34

Image: I ALTER that column in destination table: the length 30 to 50 of varchar datatype

之后任务成功启动,没有错误。

© www.soinside.com 2019 - 2024. All rights reserved.