Я пытаюсь экспортировать из моих Table
данных в через T-SQL
запрос. После небольшого исследования я пришел с этимНевозможно создать экземпляр поставщика OLE DB Microsoft.Jet.OLEDB.4.0 для связанного сервера null
INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=G:\Test.xls;',
'SELECT * FROM [Sheet1$]')
SELECT *
FROM dbo.products
Выполнения выше запрос я получаю эту ошибку
Msg 7302, уровень 16, состояние 1, строка 7 Не удается создать экземпляр OLE DB провайдер «Microsoft.Jet.OLEDB.4.0» для связанного сервера «(null)».
Так пошли через интернет для решения, получил ссылку ниже
В приведенной выше ссылке они говорили, что мы должны быть администратором, чтобы создать папку в диске СTEMP
папки так OPENROWSET
создает некоторые файлы или папки внутри TEMP
папка
Я делаю это на своем домашнем ПК, и я администратор. Тем не менее я получаю ту же ошибку.
SQL SERVER детали
Microsoft SQL Server 2016 (RC1) - 13.0.1200.242 (X64) 10 марта 2016 16:49:45 Copyright (с) Корпорация Microsoft Enterprise Evaluation Edition (64 -битовый) на ОС Windows 10 Pro 6.3 (Build 10586:)
Есть указатели, чтобы исправить эту проблему будет высоко оценен
Update: Я уже настроен Ad Hoc Distributed Queries
и
Выполненный ниже запросов
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'DynamicParameters', 1
GO
Теперь я получаю эту ошибку
Msg 7438, Level 16, состояние 1, строка 7 32 -битный поставщик OLE DB «Microsoft.Jet.OLEDB.4.0» не может быть загружен в процессе на 64-разрядном сервере SQL .
Это SO ссылка может помочь вам. - http://stackoverflow.com/questions/12090555/get-excel-sheet-into-temp-table-using-a-script –
Другая вещь, которую я замечаю, в вашем заявлении insert вместо 'SELECT * FROM dbo.products ', это должно быть -' INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0; Database = G: \ Test.xls;', 'SELECT * FROM [Sheet1 $]') ' –
@KrishnrajRana - Без разницы, все еще получаю ту же ошибку :( –