1
我已经创建了一个名为Public的文件夹,并取名为C:\驱动器的根目录,并与“Everyone”共享。我也给了NETWORK SERVICE读取权限。但是,当我发布的SQL Server 2008 R2以下查询,错误是“\\ FOO \ PUBLIC \ my.csv”不是一个有效的路径:使用openrowset的无效UNC路径
SELECT *
FROM OPENROWSET (
'Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\FOO\public\my.csv; ',
'SELECT * from my.csv'
)
ACE的64位驱动程序安装。我在Windows 7 x64上。这是一个64位版本的SQL Server。我的电脑的机器名称是“FOO”。它不适用于简单的c:\public
路径。
OLE DB提供程序 “Microsoft.ACE.OLEDB.12.0” 链接服务器 “(空)” 返回了消息“ '\ FOO \ PUBLIC \ my.csv' 不是一个有效的路径。确保 那路径名拼写正确,并且您已连接到文件所在的服务器 “。
我已经配置了服务器,以便:
exec sp_configure 'show advanced options', 1
RECONFIGURE;
exec sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE;
还有什么检查?谢谢
如果这是一个64位/提供商的问题,你会得到一个提供商的错误消息,但你不是。你在这里的路径是相对于你的SQL Server安装而不是你的客户端。你的服务器和客户端在同一台机器上吗? – 2013-03-12 06:26:17
我已经尝试把该文件夹放在服务器和我的开发PC的根目录上,并试图从两个SSMS这个查询。是否包含在“每个人”中的内置O/S身份像NT SERVICE? – Tim 2013-03-12 11:06:04
当你输入'EXEC master..xp_cmdshell'DIR \\ FOO \ public''时会发生什么。 Yuo可以使用它来“查看”SQL Server看到的内容。另外我注意到在你的错误信息中FOO之前只有一个反斜杠 - 这是一个错字还是错误信息? – 2013-03-12 23:07:03