Я пытаюсь вызвать команду OPENROWSET в SQL server 2012 для чтения данных из файла xls excel ниже - это мой код
SET @sql = 'SELECT * FROM [' + @Query + '$]'
Exec(
'select *
FROM OPENROWSET(
''Microsoft.Jet.OLEDB.4.0''
,''Excel 16.0;Database=' + @FileDirectory + '\'+ @FileName + ';HDR=YES''
,''' + @sql + ''')'
)
после выполнения команды он дает
Msg 7302, Level 16, State 1, Line 1 Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".
Я пытался вызвать
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE;
GO
но тоже не работает. Также как sql, так и excel являются 64-битными
любое другое решение ??
Обратите внимание на дополнительные строки для перенастройки (а также другие рекомендации) RECONFIGURE; EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0 ', N'AllowInProcess', 1; EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0 ', N'DynamicParam', 1;
Я перешел на Microsoft.ACE.OLEDB.12.0, и все заработало, спасибо
Пожалуйста, рассмотрите вариант публикации кода в качестве ответа, чтобы другие могли продолжить работу.





Вы пробовали эти решения? stackoverflow.com/questions/36987636/…