64位环境中使用SQL查询excel的方式解决

 

--64位环境中使用SQL查询excel的方式

环境:

OSWindows Server 2008 R2 Enterprise

MSSQL:Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)  (Build 7601: Service Pack 1)

 

查询access的方式,请移步:MSSQL中对ACCESS文件操作方式汇总

 

 

因为SQL2005默认是没有开启'Ad Hoc Distributed Queries' 组件,开启方法如下

 

--使用sa登录数据库

EXEC sp_configure 'show advanced options', 1  --更改配置

GO

RECONFIGURE       --安装

GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1

GO

RECONFIGURE

GO

--查询配置值

select value,value_in_use,name

from sys.configurations

where name ='Ad Hoc Distributed Queries'

 

 

一、案情:执行Microsoft.Jet.OLEDB.4.0查询excel报错。

代码:

select *

 FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0',  

'Data Source=C:/Book1.xlsx;

User ID=Admin;Password=;Extended Properties=Excel 8.0;')...a$ 

 

--result:

/*

消息7308,级别16,状态1,第1

因为OLE DB 访问接口'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。

 

*/

 

二、缘由:

--默认情况下,Microsoft OLE DB Provider for Jet Jet ODBC 驱动程序只能在为环境下运行,无法运行在位模式下。

 

三、处理:

--下载并安装Office System Driver Beta 64位驱动

英文地址

中文地址

 

注意:如果本机已安装位的office组件,则要先进行卸载,再安装位的MADE2010

 

在安装AccessDatabaseEngine_X64.exe之后更换Microsoft.ACE.OLEDB驱动查询:

 代码:

select @@VERSION,*

 FROM OpenDataSource('Microsoft.ACE.OLEDB.12.0',  

'Data Source=C:/Book1.xlsx;

User ID=Admin;Password=;Extended Properties=Excel 12.0;')...a$ 

 

--结果如图所示:

 

 

——>总结:找对问题是关键,比如这里的MADE2010驱动。

 

 

Posted by: select left('claro',2) @15:00:33

lable: SQL,windows

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值