SQL Server 2005 DTS导入平面数据出现错误解决方案(sqlserver数据导出导入脚本)不看后悔

随心笔谈9个月前发布 admin
204 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

文章主要讲述了在使用SQL Server 2005的Data Transformation Service(DTS)将平面数据源导入时,可能会遇到的数据转换失败和截断错误。典型错误包括: 1. **错误描述**: - 错误0xc02020a1:列“列 2”的数据转换失败,提示“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”。 - 错误0xc020902a:输出列“列 2”(18)因截断失败,并且截断行处理设置导致进一步错误。 - 错误0xc0047038:PrimeOutput方法返回错误代码,导致管道引擎停止执行。 - 错误0xc0047021:线程“SourceThread0”退出,错误代码为0xC0047038。 - 错误0xc0047039:线程“WorkThread0”被关闭,导致管道关闭。 2. **故障分析**: 错误的根本原因是平面数据源中的字段宽度超过默认值(默认为50字符),导致数据无法正确转换和存储。 3. **解决方案**: 通过高级选项手动设置每个字段的最大宽度,即可解决截断问题。具体操作包括: - 访问DTS向导,进入“高级”选项卡。 - 手动调整每个字段的最大宽度,确保不超过目标数据库中的字段宽度限制。 - 提供截图以供参考(如文章中所示)。 总结而言,问题源于字段宽度超限,通过调整字段宽度设置即可解决截断和转换失败的问题。


SQL Server 2005 DTS导入平面数据源时,总是被截断,无法执行的错误解决方案

1 典型的错误信息如下

消息

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

(SQL Server 导入和导出向导)

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

(SQL Server 导入和导出向导)

* 错误 0xc0047038: 数据流任务: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“源 – 11_txt”(1) 的 PrimeOutput 方法返回了错误代码 0xC0202092。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。

(SQL Server 导入和导出向导)

* 错误 0xc0047021: 数据流任务: SSIS 错误代码 DTS_E_THREADFAILED。 线程“SourceThread0”已退出,错误代码为 0xC0047038。可能在此之前已经发出错误消息,提供了有关线程退出原因的详细信息。

(SQL Server 导入和导出向导)

* 错误 0xc0047039: 数据流任务: SSIS 错误代码 DTS_E_THREADCANCELLED。线程“WorkThread0”接收到关闭信号,正在终止。原因是用户请求了关闭,或另一线程中的错误导致该管道关闭。可能在此之前已经发出错误消息,提供了有关取消线程的原因的详细信息。

(SQL Server 导入和导出向导)

2 故障分析:

理由很简单,默认的平文件,每个字段的宽度是50,

如果你的平面数据源的字段超过这个,则会出现上面这个错误。

3 解决方案也很简单,在高级里面,手工设定每个字段允许的最大宽度就行了,截图如下:

© 版权声明

相关文章