首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openrowset函数失败

Openrowset函数失败
EN

Stack Overflow用户
提问于 2014-11-19 00:40:50
回答 1查看 3.8K关注 0票数 2

我正在执行这个openrowset函数:

代码语言:javascript
复制
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=C:\Users\JCPABALAN\Desktop\Data Migration\ListOfDiscards.xlsx;HDR=YES', 
    'SELECT * FROM [Sheet1$]')

但它给了我以下错误

OLE DB提供程序"Microsoft.ACE.OLEDB.12.0“用于链接服务器”返回消息“Microsoft Access数据库引擎无法找到对象‘Sheet1 1$’。请确保该对象存在并且拼写正确。如果‘Sheet1 1$’不是本地对象,请检查您的网络连接或与服务器管理员联系。” Msg 7350,第16级,状态2,第1行 无法从OLE DB提供程序"Microsoft.ACE.OLEDB.12.0“获得列信息,”用于链接服务器“(Null)。

我已经将Ad Hoc Distributed Queries设置为1,并安装了Microsoft ACE并执行了以下代码:

代码语言:javascript
复制
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

但还是没用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-12 11:47:48

您的错误消息有两部分:

OLE DB提供程序"Microsoft.ACE.OLEDB.12.0“用于链接服务器”返回消息“Microsoft Access数据库引擎无法找到对象‘Sheet1 1$’。请确保该对象存在并且拼写正确。如果‘Sheet1 1$’不是本地对象,请检查您的网络连接或与服务器管理员联系。”

Msg 7350、级别16、状态2、第1行无法从OLE DB提供程序"Microsoft.ACE.OLEDB.12.0“获得列信息(Null)。

第二部分是因为第一部分的错误,所以你的主要错误在第一部分,这告诉我们:

Microsoft Access数据库引擎无法找到对象“Sheet1 1$”。确保该对象存在,并确保正确拼写其名称和路径名。如果“Sheet1 1$”不是本地对象,请检查您的网络连接或与服务器管理员联系。

一些共同的原因和解决办法是:

  • 路径不存在:文件或路径C:\Users\JCPABALAN\Desktop\Data Migration\ListOfDiscards.xlsx不存在; 注意: Server C:\指的是\\Server\C$,所以如果您使用SSMS并注册了一个Server并连接到它,那么您的路径是不存在的。
  • 文件权限被拒绝:文件或路径C:\Users\JCPABALAN\Desktop\Data Migration\ListOfDiscards.xlsx具有可以从Server服务帐户访问它们的安全级别,可以授予对Server服务帐户的访问权限。
  • 工作表名称无效:工作表Sheet1不是工作表中的有效工作表名称,您可能会更改它的名称。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27006947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档