解决Excel导入数据库时出现的文本截断问题
来源:互联网 发布:淘宝开店后怎么宣传 编辑:程序博客网 时间:2024/05/22 02:11
问题
在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,原始的Excel数据为:
忽略错误
导入SQLServer2008过程中,如果源数据和目标数据类型不匹配会导入失败,所以导入数据时会忽略错误,这次导入题库也是,结果出现了这样的问题:
仔细观察你会发现,题目不完整,最长为25个汉字,很明显这是varchar(50)数据类型,但是源数据和目的数据明明都为文本类型。
不忽略错误
如果不忽略错误,导入数据最后一步会产生这样的问题:
- 正在执行 (错误)消息错误 0xc02020c5: 数据流任务 1: 在将列“questionContent”(33)转换为列“questionContent”(119)时数据转换失败。转换操作返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。 (SQL Server 导入和导出向导)错误 0xc020902a: 数据流任务 1: “输出列“questionContent”(119)”由于发生截断而失败,而且针对“输出列“questionContent”(119)”的截断行处理设置指定截断时出错。在指定组件的指定对象上出现截断错误。 (SQL Server 导入和导出向导) 错误 0xc0047022: 数据流任务 1: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“数据转换输入”(92)时,组件“数据转换 0 - 0”(91)的 ProcessInput 方法失败,错误代码为 0xC020902A。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。 (SQL Server 导入和导出向导)
解决方法
SQL语句
可以确定这个问题不是由数据类型不匹配引起,如何解决?既然通过界面方法不能完整导入,可以采用SQL语句的方式再试试:
SELECT * INTO [MaKeSiExam].[dbo].[t_makesi_duoxuanti1] FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=D:/考试系统/题库/2012年下半年马克思考试/马克思_多选题.xls;Extended Properties=Excel 8.0')...[Sheet1$]
前提
使用SQL语句的方法可能会产生两个错误:
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭消息 7399,级别 16,状态 1,第 1 行链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。消息 7303,级别 16,状态 1,第 1 行无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
解决方法
--启用Ad Hoc Distributed Queriesexec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure
第二个问题,是因为Excel文件和SQLServer没在同一台机器,把Excel放到数据库所在机器上执行上述SQL语句即可,注意以上导入数据库的语句会新建表,表字段数据类型为Excel中的数据类型。
导入完毕,可再关闭Ad Hoc Distributed Queries
--关闭Ad Hoc Distributed Queriesexec sp_configure 'Ad Hoc Distributed Queries',0reconfigureexec sp_configure 'show advanced options',0reconfigure
导入结果
- 解决Excel导入数据库时出现的文本截断问题
- 解决Excel导入数据库时出现的文本截断问题
- EXCEL导入SQL2005出现“文本被截断”的错误
- excel字段过多,导入数据库 存在截断问题的解决方法
- Excel导入SQL数据库出现的问题【解决】
- EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决
- EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决
- EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决
- SQL导入EXCEL文件时“文本被截断”错误解决办法
- 解决Excel导入mysql数据库时汉字乱码的问题
- 解决数据库导入时出现的乱码问题
- 向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c
- 向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c
- Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决
- excel数据导入sql server ,"文本被截断"错误
- Excel数字文本混合列导入SQL Server出现的问题&解决办法
- Excel数字、文本混合列导入SQL Server出现的问题&解决办法
- Excel数字、文本混合列导入SQL Server出现的问题&解决办法
- Android 开发源码分享
- 八年级作文-面对天空
- ListView详解(一)
- GC垃圾收集器概述
- 如何:向设备项目中添加图标
- 解决Excel导入数据库时出现的文本截断问题
- ListView详解(二)
- GridView修改数据
- 并发和竞态
- Android: Runtime.getRuntime().exec() 的注意事项
- PayPal 支付接口詳解
- HTTP协议漫谈
- HTML5 入门文章目录汇总
- 如何获取ListPreference的值(在PreferenceActivity中)