我正在尝试通过SQL Server 2008从excel文件中读取数据。
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Hierarchy.xlsx',
'SELECT * FROM [Group$]')
它给了我一个奇怪的错误:
OLE DB provider "Microsoft.Jet.OLEDB.4.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.Jet.OLEDB.4.0" for linked server "(null)".
Excel工作表格式正确,路径正确。 不知道为什么它会给我一个错误。
答案 0 :(得分:1)
我找到了这个解决方案:
我以向后兼容性保存现有文件,然后触发此文件:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=NO;Database=D:\Hierarchy.xls;',
[Group$])
不知道为什么会有效,而其他人则不知道,可能有人对此有所了解。
答案 1 :(得分:0)
尝试使用ACE OleDB和excel 12.0版本
示例:
SELECT * FROM
OPENROWSET
(
'Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\Hierarchy.xlsx;Extended Properties="Excel 12.0;HDR=YES"',
'SELECT * FROM [Group$]'
)