【问题标题】:OPENROWSET with Excel file带有 Excel 文件的 OPENROWSET
【发布时间】:2012-03-13 16:02:13
【问题描述】:

我要执行简单的语句:

SELECT * FROM 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;Database=C:\Temp\;','SELECT * FROM [test.csv]')

今天早上我突然收到这条消息:

Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'MICROSOFT.JET.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.

一直工作到今天早上!

这是我的服务器规格: 视窗 2008 R2 64 位 SQL Server 2008 64 位

我已经安装了 AccessDatabaseEngine_x64.exe。

Sql Server 在 LocalService 帐户下运行。 我已将每个人都设置为对“C:\Temp”和“C:\Windows\ServiceProfiles\LocalService\AppData\Local”拥有完全控制权限。

有什么我错过的吗?我真的很困惑……

编辑: 我也执行了这些语句:

sp_configure ‘show advanced options’, 1;
 GO
 RECONFIGURE;
 GO
 sp_configure ‘Ad Hoc Distributed Queries’, 1;
 GO
 RECONFIGURE;
 GO

EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’AllowInProcess’, 1
 GO
 EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’DynamicParameters’, 1
 GO

我还使用管理员帐户测试了ACE.OLEDB.12.0

SELECT * FROM  
OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','Text;Database=C:\Temp\;','SELECT * FROM [test.csv]')

还有一个错误:

OLE DB provider "MICROSOFT.ACE.OLEDB.12.0" for linked server "(null)" returned message "Unspecified error".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MICROSOFT.ACE.OLEDB.12.0" for linked server "(null)".

终于找到了: 我运行了 ProcMon,我看到 Sql Server 想要访问 F:\Windows Temp\ 并且该文件夹不存在!我创建了文件夹,问题就解决了。但是,我从来没有这样的文件夹!!!

【问题讨论】:

  • 您使用的是ACE.OLEDB.12.0 还是JET.OLEDB.4.0?在 x64 版本的服务器上,您需要使用 ACE.OLEDB.12.0
  • 我正在使用 ACE.OLEDB.12.0,它在一年前就可以使用。是否有任何导致此问题的 Windows 更新?我刚试过JET.OLEDB.4.0测试写在一些博客上。
  • 您是否在用户帐户安全上下文下启动 SQL Server 服务?
  • 它在本地服务帐户下运行。
  • 我在读取 CSV 文件时遇到了完全相同的错误,直到在运行 SQL Server 的用户帐户的 TEMP 文件夹上设置权限。更多信息:blogs.msdn.com/b/spike/archive/2008/07/23/…

标签: sql-server sql-server-2008 excel oledb openrowset


【解决方案1】:

终于找到了:我跑了ProcMon,看到SQL Server要访问F:\Windows Temp\,文件夹不存在!我创建了文件夹,问题就解决了。但是,我从来没有这样的文件夹!!!

【讨论】:

    猜你喜欢
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多