sql2005里查询excel会报错?

a2048 2014-05-26 08:11:47
环境:win2008 64位 、sql2005 64位 、office2003 32位
在sql2005里执行:

select convert(Decimal(20,0),f1) as aa from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=1;DATABASE=d:\\a.xls',[sheet1$])

会报错,报错内容如下:
消息 7302,级别 16,状态 1,第 1 行
无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0" 的实例。

我后来故意把d盘下a.xls删掉再执行上面的sql语句还是报一样的错,不知为什么?
原来在sql2000里没有问题。
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2014-05-27
  • 打赏
  • 举报
回复
先下载安装ACE驱动程序,地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=26605 然后用OPENROWSET()读取.

select * 
from OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                'Excel 12.0;Database=[Excel文件];HDR=YES',
                'SELECT * FROM [sheet1$]')
卖水果的net 版主 2014-05-27
  • 打赏
  • 举报
回复
1. 64位的已经干掉了JET.OLEDB 这个东西。 2.下载ACE2010 3.必须在服务器上跑这个语句,不能连接到远程的机器上跑这个。因为文件要生成在服务器上。
  • 打赏
  • 举报
回复
64位是不能用jet地~
a2048 2014-05-27
  • 打赏
  • 举报
回复
谢谢各位,原因找到了,三楼给的是补丁的连接,所以不能安装。
---涛声依旧--- 2014-05-27
  • 打赏
  • 举报
回复
重启电脑后关掉其他所有程序再安装试试
a2048 2014-05-27
  • 打赏
  • 举报
回复
引用 3 楼 ap0405140 的回复:
先下载安装ACE驱动程序,地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=26605 然后用OPENROWSET()读取.

select * 
from OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                'Excel 12.0;Database=[Excel文件];HDR=YES',
                'SELECT * FROM [sheet1$]')
我下载后安装不了,提示“此系统安装的该程序包不会影响任何产品”,然后按确定后就没有什么了。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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