Microsoft.ACE.OLEDB.12.0 не зарегистрирован
У меня есть задание SQL Server, которое выполняется ежемесячно, что выполняется на сервере. В задании используется пакет SSIS и предполагается извлечь данные из базы данных, а также создать лист Excel и скопировать данные в Excel 2003.
Я действительно получил около 140 000 строк из базы данных из-за проблемы усечения в Excel 2003 (Excel поддерживает 64 000 строк). Поэтому я изменил файл конфигурации для поддержки формата Excel 2007.
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::FullPath] + ";Extended Properties=\"Excel 12.0;HDR=YES\"
Но когда я пытаюсь выполнить задание, он не показывает сообщение об ошибке:
"Запрошенный поставщик OLE DB Microsoft.ACE.OLEDB.12.0 не зарегистрирован"
Ответы
Ответ 1
Подведены: INSTALL 32-разрядная версия Microsoft Access Database Engine 2010, распространяемая. Удалите 64-разрядную версию, если она была установлена ранее. http://www.microsoft.com/en-us/download/details.aspx?id=13255
Менеджер соединений Excel пытается использовать провайдер ACE OLE DB для доступа к файлу Excel, если версия выше 2007 (xlsx).
Хотя ваш бокс 64-битный, вы используете SQL Server Data Tools, который является 32-битным приложением. 64-битной версии для SSDT нет. Когда вы разрабатываете свой пакет в SSDT, вы используете 32-битный процесс, который может использовать только 32-разрядные провайдеры. Когда вы пытаетесь выбрать таблицу в файле Excel, диспетчеру связи необходимо получить доступ к 32-разрядной версии поставщика ACE OLE DB, но этот провайдер не зарегистрирован на вашем компьютере, установлена только 64-разрядная версия.
Вам следует загрузить версию 32-разрядной версии Microsoft Access Database Engine 2010 Redistributable. Когда вы пытаетесь установить его, вы можете получить сообщение об ошибке.
Сначала вы должны удалить только 64-разрядную версию "Microsoft Access Database Engine 2010 Redistributable", которую вы, вероятно, установили ранее. 64-разрядная версия и 32-битная версия не могут жить вместе на одном и том же хосте, поэтому вам придется удалить (через "Программа и функции" ) и установить другую, если вы хотите переключиться между ними.
Как только вы закончите удаление 64-разрядной версии и установили 32-разрядную версию поставщика, проблема решена, и вы можете, наконец, выбрать таблицу в файле Excel. Менеджер соединений Excel теперь может использовать поставщика ACE OLE DB (32-разрядную версию) для доступа к файлу Excel.
Ответ 2
Есть альтернативный путь. Откройте файл Excel в Microsoft Office Excel и сохраните его как "Excel 97-2003 Workbook". Затем используйте новый сохраненный файл excel в вашем подключении к файлу.
Ответ 3
Другой вариант - запустить пакет в 32-битном режиме. Нажмите на решение = > properties =? Debugging = > Установить в 64 бит значение false.
Ответ 4
Я установил "Microsoft Access Database Engine 2010 Redistributable", как упомянуто выше, и получил побочные проблемы с устранением неполадок, связанных с битрейтом, когда это казалось проблемой с версией.
Установка "Драйвер системы Office 2007: компоненты подключения данных" разобрала его для меня.
https://www.microsoft.com/en-us/download/details.aspx?id=23734
Ответ 5
Я думаю, что вы можете уйти, просто установив драйверы OLEDB - http://www.microsoft.com/en-us/download/details.aspx?id=13255
Ответ 6
Самым простым решением для меня было изменить задание агента SQL на запуск в 32-разрядной среде выполнения. Перейдите в раздел "Работа SQL"> щелкните правой кнопкой мыши свойства> шаг> изменить (шаг)> вкладка "Параметры выполнения"> "Использовать 32-разрядную среду выполнения".
Скриншот
Ответ 7
Возможно, вы установили 32-битные драйверы, работа которых будет работать на 64-битной основе. Дополнительная информация: http://microsoft-ssis.blogspot.com/2014/02/connecting-to-excel-xlsx-in-ssis.html
Ответ 8
Я выполнил инструкции по использованию /passive switch здесь после загрузки 64-битного ядра базы данных Access. Я запускаю Office 32-битную табличную модель SSAS в SQL Server 2012. Когда я загрузил и запустил 64-битный движок базы данных Access, появилось сообщение о том, что я не смог установить это без первой деинсталляции Office 2010, но /passive switch, похоже, решил это (теперь я могу импортировать книги Excel и таблицы Access в табличную модель).
Ответ 9
Самое легкое решение, которое я нашел, это указать версию Excel200-2003 в настройке диспетчера подключений.
Ответ 10
Я получал эту же ошибку после того, как ранее смог выполнить аналогичные операции. Я не пытался загрузить ни один из упомянутых пакетов, так как у меня их не было раньше, и все работает. IT на моей работе сделал "Ремонт" в Microsoft Office 2013 (Панель управления > Программы > Добавить/Удалить - Выбрать Изменить, затем Восстановить). Взял несколько минут, чтобы закончить, но все исправил.
Ответ 11
Просто установите 32-битную версию ADBE в пассивном режиме:
запустите cmd в режиме администратора и запустите этот код:
AccessDatabaseEngine.exe/passive
http://www.microsoft.com/en-us/download/details.aspx?id=13255