SQL2005导入数据的问题?

时间:2021-11-20 20:48:05
为什么我导一个数据包文件名为.txt的文件进SQL2005时老是提示下面的错误,请问各位大侠这是什么问题呢?

正在执行 (错误)
消息
错误 0xc02020a1: 数据流任务: 数据转换失败。列“列 22”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。
 (SQL Server 导入和导出向导)
 
错误 0xc020902a: 数据流任务: “输出列“列 22”(98)”由于发生截断而失败,而且针对“输出列“列 22”(98)”的截断行处理设置指定截断时出错。在指定组件的指定对象上出现截断错误。
 (SQL Server 导入和导出向导)
 
错误 0xc0202092: 数据流任务: 处理文件“C:\Documents and Settings\user\桌面\KHBH\khbh2120_20080730.txt”的数据行 24 时出错。
 (SQL Server 导入和导出向导)
 
错误 0xc0047038: 数据流任务: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“源 - khbh2120_20080730_txt”(1) 的 PrimeOutput 方法返回了错误代码 0xC0202092。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
 (SQL Server 导入和导出向导)
 
错误 0xc0047021: 数据流任务: SSIS 错误代码 DTS_E_THREADFAILED。 线程“SourceThread0”已退出,错误代码为 0xC0047038。可能在此之前已经发出错误消息,提供了有关线程退出原因的详细信息。
 (SQL Server 导入和导出向导)
 
错误 0xc0047039: 数据流任务: SSIS 错误代码 DTS_E_THREADCANCELLED。线程“WorkThread0”接收到关闭信号,正在终止。原因是用户请求了关闭,或另一线程中的错误导致该管道关闭。可能在此之前已经发出错误消息,提供了有关取消线程的原因的详细信息。
 (SQL Server 导入和导出向导)
 
错误 0xc0047021: 数据流任务: SSIS 错误代码 DTS_E_THREADFAILED。 线程“WorkThread0”已退出,错误代码为 0xC0047039。可能在此之前已经发出错误消息,提供了有关线程退出原因的详细信息。
 (SQL Server 导入和导出向导)
 


 

10 个解决方案

#1


数据转换失败。列“列 22”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。 
----------------------
字段长度不够?
尝试把字段都设置大点

#2


缺省条件下, 对文本文件所有字符列的长度是50. 你需要在文本文件联接的"Advanced"页里把字符的长度改大, 或者你可以用"Suggest Types..."

#3


引用 1 楼 hery2002 的回复:
数据转换失败。列“列 22”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。 
---------------------- 
字段长度不够? 
尝试把字段都设置大点


我设了呀!!!第22列的设的足够大的了不会不够长呀

#4


llj0209013知道,你可以問他,他是高手

#5


应该就是'22列'对应的数据库字段长度不够!

#6


你的 sql 2005打补丁了没有?打sp2后再试一下

http://www.crsky.com/soft/7151.html

#7


这个不是长度的问题,同样的文件在2000下面就是可以的。需要sp2。

#8


我也碰到这个问题,不是长度的问题

#9


1 故障分析: 
理由很简单,默认的平文件,每个字段的宽度是50, 
如果你的平面数据源的字段超过这个,则会出现上面这个错误。 

2 解决方案:

也很简单,在数据源的高级里面(也就是文本的高级设置),手工设定每个字段允许的最大宽度就行了.
而不是设置数据库表的这个字段长度。

#10


引用 9 楼 farwy 的回复:
1 故障分析: 
理由很简单,默认的平文件,每个字段的宽度是50, 
如果你的平面数据源的字段超过这个,则会出现上面这个错误。 

2 解决方案:

也很简单,在数据源的高级里面(也就是文本的高级设置),手工设定每个字段允许的最大宽度就行了.
而不是设置数据库表的这个字段长度。


正解!我用的SQL2008,数据源的高级里面,别理解错了!是 数据源的高级里面!

#1


数据转换失败。列“列 22”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。 
----------------------
字段长度不够?
尝试把字段都设置大点

#2


缺省条件下, 对文本文件所有字符列的长度是50. 你需要在文本文件联接的"Advanced"页里把字符的长度改大, 或者你可以用"Suggest Types..."

#3


引用 1 楼 hery2002 的回复:
数据转换失败。列“列 22”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。 
---------------------- 
字段长度不够? 
尝试把字段都设置大点


我设了呀!!!第22列的设的足够大的了不会不够长呀

#4


llj0209013知道,你可以問他,他是高手

#5


应该就是'22列'对应的数据库字段长度不够!

#6


你的 sql 2005打补丁了没有?打sp2后再试一下

http://www.crsky.com/soft/7151.html

#7


这个不是长度的问题,同样的文件在2000下面就是可以的。需要sp2。

#8


我也碰到这个问题,不是长度的问题

#9


1 故障分析: 
理由很简单,默认的平文件,每个字段的宽度是50, 
如果你的平面数据源的字段超过这个,则会出现上面这个错误。 

2 解决方案:

也很简单,在数据源的高级里面(也就是文本的高级设置),手工设定每个字段允许的最大宽度就行了.
而不是设置数据库表的这个字段长度。

#10


引用 9 楼 farwy 的回复:
1 故障分析: 
理由很简单,默认的平文件,每个字段的宽度是50, 
如果你的平面数据源的字段超过这个,则会出现上面这个错误。 

2 解决方案:

也很简单,在数据源的高级里面(也就是文本的高级设置),手工设定每个字段允许的最大宽度就行了.
而不是设置数据库表的这个字段长度。


正解!我用的SQL2008,数据源的高级里面,别理解错了!是 数据源的高级里面!