我使用的是 SQL 2019,已安装 SSISDB。我的客户使用导入/导出向导创建一个 SSIS 包来导入 Excel 文件,只有在我必须安装 32 位版本的 Microsoft Access Database Engine 2016 Redistributable 后才成功。
但是,当他尝试从 SQL 代理作业运行该包时,他收到以下消息:
“...描述:请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.16.0 未注册。如果未安装 64 位驱动程序,请以 32 位模式运行该包...”
我是否应该在已安装 32 位版本的同一台服务器上安装 64 位版本?我无法在 SSMS 中找到将作业配置为使用 32 位选项运行的选项。
请指教。
谢谢
我发现了这个并且它以前对我有用。希望能帮助到你
安装 64 位版本的 Microsoft Access 数据库引擎:
如果您的 SQL Server 代理作业在 64 位模式下运行,则应在安装 SQL Server 的服务器上安装 64 位版本的 Microsoft Access 数据库引擎 2016 Redistributable。这将允许作业使用 64 位 ACE OLEDB 提供程序访问 Excel 文件。请务必从 Microsoft 网站下载并安装 64 位版本。
配置 SQL Server 代理作业执行模式:
在 SQL Server Management Studio (SSMS) 中,连接到 SQL Server。展开对象资源管理器中的“SQL Server 代理”节点。右键单击您的 SQL 代理作业并选择“属性”。在“作业属性”对话框中,转到“步骤”页面。选择运行 SSIS 包的步骤。单击“编辑”按钮。在“编辑作业步骤”对话框中,转到“执行选项”选项卡。您将找到一个名为“使用 32 位运行时”的选项。默认情况下,它是未选中的,这意味着作业以 64 位模式运行。如果您想以 32 位模式运行作业,请选中此选项。单击“确定”保存更改。
修改 SSIS 包中的连接管理器:
在 SQL Server Data Tools (SSDT) 中打开 SSIS 包。检查包中使用的 Excel 连接管理器。确保根据您是在 32 位还是 64 位模式下运行包,将它们配置为使用适当的 ACE OLEDB 提供程序。对于 32 位模式,请使用 32 位 ACE OLEDB 提供程序。对于 64 位模式,请使用 64 位 ACE OLEDB 提供程序。
保存并部署修改后的包:
对 SSIS 包进行必要的更改后,保存它并将其部署到 SQL Server 上的 SSISDB。
重新配置 SQL 代理作业:
如果更改了 SQL 代理作业的执行模式,请返回作业属性并确保将其设置为基于 ACE OLEDB 以您想要的模式(32 位或 64 位)运行您已安装并配置的提供程序。
通过执行这些步骤,您应该能够配置 SQL Server 代理作业和 SSIS 包,以根据执行模式(无论是 32 位还是 64 位)使用正确的 ACE OLEDB 提供程序。这应该可以解决您遇到的错误。