sql server 2005 读取Excel 的问题

冷箫轻笛 2008-05-13 09:17:15

--以下语句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$)

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


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

--OPENDATASOURCE 和 OPENROWSET 支持已经设置启用了
...全文
1879 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
生活的信仰 2010-11-02
  • 打赏
  • 举报
回复
求解 关注中。。。
元元0123 2010-08-23
  • 打赏
  • 举报
回复
是啊,快告诉我们怎么解决的,急用啊,谢谢
qizhi4b 2010-04-22
  • 打赏
  • 举报
回复
LZ太不厚道了啊,也不告诉你怎么解决的啊
cnewton 2010-03-24
  • 打赏
  • 举报
回复
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="E:\ferrero\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

也遇到了:
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "找不到可安装的 ISAM。"。
消息 7303,级别 16,状态 1,第 2 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。

问题,而且是重启服务就好了,但是过二三天有不行了!
meijun_80 2009-09-16
  • 打赏
  • 举报
回复
请问能否把解决方法写出来?
yanmaha 2008-11-14
  • 打赏
  • 举报
回复
我也遇到同样问题,LZ能不能说说是什么问题?谢谢
冷箫轻笛 2008-05-30
  • 打赏
  • 举报
回复
多谢大家!
不好意思,问题解决了,没有及时揭帖!
Excel文件是从sap导出来的,问题就出在这个上面,是我犯了一个低级错误。
导出的格式是有问题的,只是用眼看不出来而已。

wgh88888888 2008-05-30
  • 打赏
  • 举报
回复
一般情况,Oledb版本对应不上,就会发生楼主那样的错误。

我使用的是Excel2007,可以这样实现:

select * from opendatasource('Microsoft.ACE.OLEDB.12.0','Data Source=c:test.xlsx;Extended Properties=Excel 8.0')...[sheet1$]
flyerwing 2008-05-29
  • 打赏
  • 举报
回复
老乌龟都5颗星星了阿 ?

呵呵!
flyerwing 2008-05-29
  • 打赏
  • 举报
回复
老乌龟都5个星星了阿!!!?
嘎嘎,
新鲜鱼排 2008-05-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 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$]

select * from
OPENROWS…
[/Quote]

有点不明白为什么要从Excel中来弄数据。
Limpire 2008-05-14
  • 打赏
  • 举报
回复
--> 你的 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
*/
Limpire 2008-05-14
  • 打赏
  • 举报
回复
--> 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$)
swot2008 2008-05-14
  • 打赏
  • 举报
回复
一样,关注
hery2002 2008-05-14
  • 打赏
  • 举报
回复
2005在使用openrowset和opendatasource时有很多问题,
我之前一个运行的很好导入Excel的T-SQL,也是使用Openrowset写的,在打了SP1以后不能使用,在打了SP2之后一段时间可以使用,
但是后来又不能使用,我也不知道是什么原因,估计是升级了MS的其它补丁,导致不能使用,
尝试了网络上所有的解决方案,无效.一直没有找到解决方案.
然后修改成SSIS直接导入方式完成的.
可能的话,建议LZ也使用SSIS方式导入表中完成,
否则,不知道哪天升了个MS的补丁后又会出现这样的问题.
烦~
  • 打赏
  • 举报
回复
mark
冷箫轻笛 2008-05-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 Limpire 的回复:]
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
*/
[/Quote]

我装的Office2003 ,但是改为11.0的话提示:

链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "找不到可安装的 ISAM。"。
Msg 7303, Level 16, State 1, Line 1
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
冷箫轻笛 2008-05-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 Limpire 的回复:]
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'…
[/Quote]

--提示:
Msg 7403, Level 16, State 1, Line 1
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered.

真郁闷了!!!
-_-!!
dawugui 2008-05-13
  • 打赏
  • 举报
回复
看不到回复了,CSDN又在升级了?
冷箫轻笛 2008-05-13
  • 打赏
  • 举报
回复
kao,老乌龟都5个星星了阿!!!
加载更多回复(10)

6,128

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧