SQL Server 2016/Visual Studio 2015 上的 SSIS OLEDB.12.0 问题

Posted

技术标签:

【中文标题】SQL Server 2016/Visual Studio 2015 上的 SSIS OLEDB.12.0 问题【英文标题】:SSIS OLEDB.12.0 issue on SQL server2016/visual studio 2015 【发布时间】:2017-11-21 09:07:11 【问题描述】:

我遇到了一个关于 SSIS 导入 Excel 文件的问题。

当我使用 Visual Studio 2015 使用 AccessDatabaseEngine(32 位)开发和运行 SSIS 时,它可以工作。

当我在 SQL Server 2016 上使用 Task-->import 并使用 AccessDatabaseEngine(32 位)选择 excel 2007-2010(xlsx) 时,它也有效。

但是当我在 SQL Server 上的 SSISDB 目录下运行 SSIS 包时,我不工作,AccessDatabaseEngine(32 位)显示错误:

请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.12.0 未注册。如果未安装 64 位驱动程序,请在 32 位模式下运行该软件包。错误代码:0x00000000。 OLE DB 记录可用。来源:“Microsoft OLE DB 服务组件”Hresult:0x80040154 描述:“类未注册

之后,我尝试卸载 AccessDatabaseEngine(32 位)并安装 AccessDatabaseEngine(64 位),然后当我在 SSIDDB 目录下运行 SSIS 包时它可以工作,但是当我使用 Visual Studio 运行或运行时我不工作使用 Task--> 在 SQL Server 上导入。

您能否建议解决此问题的最佳解决方案?

谢谢

【问题讨论】:

错误信息说“在 32 位模式下运行包”你应该试试。 在将项目部署到 SSISDB 目录表单 Ture --> False 之前,我还在 Visual Studio 中设置了一个 Run64BitRuntime 并构建它。但是当我尝试使用 SSISDB 目录运行时它不起作用 TT 我相信你需要在运行它时设置它,而不是在部署它时。你是如何运行它的?从右键单击?我这里没有要测试的,但你应该可以在运行时告诉它 是的,我通过右键单击 SSISDB 目录下的包并选择“执行”来运行它。在 ssis 目录上执行时,我不确定如何将其设置为 32 位。 好的,当我右键单击并选择执行时,我在高级选项卡上找到了 32 位运行时。非常感谢尼克:) 【参考方案1】:

在执行 SSISDB 目录下的包时,单击高级选项卡中的 32 位运行时解决的问题。

【讨论】:

【参考方案2】:

要使用 Visual Studio 运行,请尝试安装 AccessDatabaseEngine_X64

【讨论】:

以上是关于SQL Server 2016/Visual Studio 2015 上的 SSIS OLEDB.12.0 问题的主要内容,如果未能解决你的问题,请参考以下文章

sql server 根据执行计划查询耗时操作

SQL Server 查询性能异常语句

SQL Server 查询性能异常语句

Sql Server 数据透视表未对结果集进行分组

如何在 sql server 2008 的同一张表中使用计数和分组方式和自连接?

更改 SQL Server DB 中列的数据类型时出错 - Java