解决Sql Server 2005导入Excel错误消息

解决Sql Server 2005导入Excel错误消息
* 错误 0xc020901c: 数据流任务: 输出“Excel 源输出”(9) 上的 输出列“经营范围”(24) 出错。返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。 (SQL Server 导入和导出向导)
* 错误 0xc020902a: 数据流任务: “输出列“经营范围”(24)”由于发生截断而失败,而且针对“输出列“经营范围”(24)”的截断行处理设置指定截断时出错。在指定组件的指定对象上出现截断错误。
(SQL Server 导入和导出向导)
* 错误 0xc0047038: 数据流任务: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“源 - 全部$”(1) 的 PrimeOutput 方法返回了错误代码 0xC020902A。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)
* 错误 0xc0047021: 数据流任务: SSIS 错误代码 DTS_E_THREADFAILED。 线程“SourceThread0”已退出,错误代码为 0xC0047038。可能在此之前已经发出错误消息,提供了有关线程退出原因的详细信息。
(SQL Server 导入和导出向导)
* 错误 0xc0047039: 数据流任务: SSIS 错误代码 DTS_E_THREADCANCELLED。线程“WorkThread0”接收到关闭信号,正在终止。原因是用户请求了关闭,或另一线程中的错误导致该管道关闭。可能在此之前已经发出错误消息,提供了有关取消线程的原因的详细信息。
(SQL Server 导入和导出向导)
1.用SQL Server 导入和导出向导工具时会碰到上面的问题,不是字段设置的不够长的原因,
后来改用Sql语句执行:
SELECT * INTO 全部$ FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=E:/沈阳实施/医疗器械经营企业名单(全部-完整版).xls;
Extended Properties=Excel 8.0')...[全部$]
接着又碰到两个问题:
1.
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
解决方法:
启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
2.解决了第一个问题后又出现以下问题:
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
解决方法:
这个问题搞了很久,是由于Excel文件没与Ms Server2005数据库同在一个造成的,
把Excel文件放到服务器执行Sql语句即可解决
Tags: 

延伸阅读

最新评论

发表评论