日期:2014-05-18  浏览次数:20356 次

sql server 2005 读取Excel 的问题
SQL code

--以下语句2000下没有问题,但是到了2005,死活就是这么个问题:
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Country.XLS";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Country$]

SELECT * 
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source= "c:\Country.XLS";Extended Properties=Excel 5.0')...[Country$] 

select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\Country.XLS',Country$)

--错误提示
[color=#FF0000]消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。[/color]

--个人感觉应该是权限不足,但是不知道该怎么搞,各位热心的帅哥美女帮忙哈!!!

--OPENDATASOURCE 和 OPENROWSET 支持已经设置启用了



------解决方案--------------------
严重关注事态进展.
------解决方案--------------------
探讨
严重关注事态进展.

------解决方案--------------------
Extended properties=Excel 97-2005 ?
------解决方案--------------------
探讨
晕,2000下也报错了

服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。


老乌龟 小梁 这么晚还在阿

------解决方案--------------------
你不会没装excel吧?
------解决方案--------------------
看不到回复了,CSDN又在升级了?
------解决方案--------------------
SQL code
--> 2005 换 Microsoft.ACE.OLEDB.12.0 试下,在我机器上测是没问题的,Microsoft.Jet.OLEDB.4.0 也没问题:

SELECT * 
FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0',
  'Data Source="c:\Country.XLS";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Country$]

SELECT * 
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source= "c:\Country.XLS";Extended Properties=Excel 5.0')...[Country$] 

select * from 
OPENROWSET('Microsoft.ACE.OLEDB.12.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\Country.XLS',Country$)

------解决方案--------------------
SQL code
--> 你的 Excel 版本太低了,起码用8.0以上试试:

/*
 2.0    Excel 2.0
 3.0    Excel 3.0
 4.0    Excel 4.0
 5.0    Excel 5.0
 7.0    Excel 95
 8.0    Excel 97
 9.0    Excel 2000
10.0    Excel XP
11.0    Excel 2003
12.0    Excel 2007
*/

------解决方案--------------------
mark
------解决方案--------------------
2005在使用openrowset和opendatasource时有很多问题,
我之前一个运行的很好导入Excel的T-SQL,也是使用Openrowset写的,在打了SP1以后不能使用,在打了SP2之后一段时间可以使用,
但是后来又不能使用,我也不知道是什么原因,估计是升级了MS的其它补丁,导致不能使用,
尝试了网络上所有的解决方案,无效.一直没有找到解决方案.
然后修改成SSIS直接导入方式完成的.
可能的话,建议LZ也使用SSIS方式导入表中完成,
否则,不知道哪天升了个MS的补丁后又会出现这样的问题.
烦~
------解决方案--------------------
一样,关注
------解决方案--------------------
引用楼主 coolingpipe 的帖子:
SQL code
--以下语句2000下没有问题,但是到了2005,死活就是这么个问题:
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Country.XLS";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Country$]

SELECT *
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source= "c:\Country.XLS";Extended Properties=Excel 5.0')...[Country$]