sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页…

  • Post author:
  • Post category:其他



使用

sql server


导入平面文件源数据时,报错:

错误 0xc02020a1: 错误 0xc020902a: 错误 0xc02020c5;错误 0xc0047022: 返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。




错误 0xc02020a1: 数据流任务 1: 数据转换失败。列“列 6”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。

(SQL Server 导入和导出向导)


错误 0xc020902a: 数据流任务 1: “输出列“列 6”(34)”由于发生截断而失败,而且针对“输出列“列 6”(34)”的截断行处理设置指定截断时出错。在指定组件的指定对象上出现截断错误。

(SQL Server 导入和导出向导)


错误 0xc02020c5: 数据流任务 1: 在将列“列 6”(34)转换为列“列 6”(70)时数据转换失败。转换操作返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。

(SQL Server 导入和导出向导)



错误 0xc0047022: 数据流任务 1: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“数据转换输入”(63)时,组件“数据转换 0 – 0”(62)的 ProcessInput 方法失败,错误代码为 0xC020902A。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。

(SQL Server 导入和导出向导)






出现这种错误,常常是导入的数据中有一些异常值,(或者说,对于数据库软件来说,是个错误值),出现没法转换,或被截断的报错。



一种办法是,找出这个异常值,可当数据量较大时,这个办法不可行。例如,笔者这次导入的数据有

160


多万条,不能去打开文件去找这个错误值吧。有时因为分配的数据宽度不够(默认是50),增大即可。可当是数据转换问题时,增大也没用,另外,为了一个异常值,将所有的基本类型长度改变,没必要。




第二种办法,对于这种少量的数据异常值,忽略它。

即当出现异常值时,并不报错退出导入数据过程,而是忽略这个小的异常点。



操作步骤:



如图,选择要导入的文件




选择左侧的高级选项





然后,将某一列的

DataType


改为非默认值

(当导入出现错误后,再一次重复导入时,才能看到最后一张图所示选项)










点击下一步,

3


次会看到如下图:






如果刚才发生了截断错误的,将选项选为忽略即可。



版权声明:本文为xinxing__8185原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。