Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql OPENROWSET-文件名中存在空格问题_Sql_Sql Server_Excel - Fatal编程技术网

Sql OPENROWSET-文件名中存在空格问题

Sql OPENROWSET-文件名中存在空格问题,sql,sql-server,excel,Sql,Sql Server,Excel,使用SQL Server 2016 我正在尝试使用OPENROWSET读取Excel文件。这非常有效: SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; HDR=YES; Database=D:\temp\my_filename_123.xlsx', 'SELECT * FROM [Sheet1$]') 请注意,文件名中没有空格。但是,以下措施不起作用: SELECT * FROM OPENROWS

使用SQL Server 2016

我正在尝试使用OPENROWSET读取Excel文件。这非常有效:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; 
  HDR=YES; Database=D:\temp\my_filename_123.xlsx', 'SELECT * FROM [Sheet1$]')
请注意,文件名中没有空格。但是,以下措施不起作用:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; 
  HDR=YES; Database=D:\temp\my filename 123.xlsx', 'SELECT * FROM [Sheet1$]') 
或者使用双引号将整个路径括起来:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; 
  HDR=YES; Database="D:\temp\my filename 123.xlsx"', 'SELECT * FROM [Sheet1$]')
错误是“…找不到'Sheet1$”…等”

请帮忙。
注意。

尝试从Excel版本规范中删除XML:

select * 
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\temp\my filename 123.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]')

对我来说,这很好

这是一个潜在的复制品吗?不,不是。这是一个完全不同的问题。我使用的不是Microsoft Access驱动程序,而是Ace OleDB。此外,我没有尝试打开文本/csv文件,而是Excel 2010 XLSXS尝试了这个
SELECT*FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','excel12.0xml;HDR=YES;Database=[D:\temp\my filename 123.xlsx],'SELECT*FROM[Sheet1$]')
(或者可能是
Database=D:\temp\[my filename 123.xlsx]
)我试过了,但不起作用……谢谢安东,但这篇文章已经有1.5年历史了。无论如何,我会记住你的建议:)