Sql OpenDataSource不能使用excel或csv文件的unc路径

时间:2013-07-02 23:28:53

标签: sql-server sql-server-2012 windows-server-2008-r2

我在数据库中的几个proc中有以下内容以自动读取excel文件:

SELECT *   
 FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 
 'data source=\\server\Uploads\Unprocessed\uploadedfile-Mailing.xls; 
 Extended Properties=Excel 12.0 XML;HDR=NO;IMEX=1;')...['_Export_Finished$'] 

我们最近添加了一些服务器,现在我们似乎正在使用opendatasource专门有权限错误...如果该命令作为SA运行它工作正常,如果它作为sql代理运行或任何其他用户它与以下极其描述性的错误:

  

OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”用于链接服务器“(null)”返回消息>“找不到可安装的ISAM。”。   Msg 7303,Level 16,State 1,Line 1   无法为>链接服务器“(null)”初始化OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。

然而,当我们像这样使用openrowset时:

select * from 
openrowset('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0     Xml;HDR=no;IMEX=1;Format=xlsx;Database=\\server\Uploads\Unprocessed\uploadedfile-Mailing.xls',
'select * from [_Export_Finished$]')

,查询触发得很好,不管用户正在触发它...对于opendatasource工作而不是必须将所有内容换成openrowset更好...任何想法为什么一个在另一个上工作?这些是64位服务器,但考虑到openrowset的工作原因并不重要。任何帮助都将非常感谢!

0 个答案:

没有答案