SSIS 包中的 Run64BitRuntime 不会粘住

Posted

技术标签:

【中文标题】SSIS 包中的 Run64BitRuntime 不会粘住【英文标题】:Run64BitRuntime in SSIS package won't stick 【发布时间】:2016-05-03 16:46:23 【问题描述】:

大约 6 个月前,我开发了一个 SSIS 包,用于将多个访问数据库迁移到 SQL Server。我昨天打开包装进行另一次运行,并注意到一些 (X) 错误指示器。经过进一步调查,连接管理器产生了以下错误:

不支持指定的提供程序。请选择不同的 连接管理器中的提供程序。

连接管理器随即打开,但之前选择的提供程序不再列出。调查项目文件中的文本,我之前使用的是:

Microsoft.ACE.OLEDB.15.0

回想起我确实必须将 Run64BitRuntime 设置为 false 才能使用 32 位提供程序,我仔细检查了 Project Properties -> Configuration Propeties -> Debugging -> Run64BitRuntime 设置,它有恢复为True。我切换到 false,保存,退出并重新打开,该值再次恢复为 True。其他几次尝试产生了相同的结果。在这一点上,我认为这是问题所在,但尚未找到解决方案。

为了全面披露,该软件包是在 SSDT-BI 上为 VS 2012 开发的,我现在正在使用 SSDT-BI for VS 2013。我试图创建一个新软件包以防出现问题,但是新包装也会发生同样的事情。我还升级了我的 Office 安装,现在在 ODBC(32 位)中列出了 Microsoft Access 驱动程序(*.mdb、*.accdb)的版本 16,而不是版本 15。

有什么想法吗?

编辑 1: 访问驱动程序未列在连接管理器的提供程序列表中,但列在 ODBC 32 位提供程序中。 Jet 4.0 提供程序因“无法识别的数据库格式”而失败

编辑 2: 遇到一些帖子,指出如果未列出提供程序,VS 可能在 64 位模式下运行。我加倍检查以验证它是否在 32 位模式下运行(如任务管理器中所示)。也许我的问题是提供商根本没有出现?

编辑 3: 为 VS 2012 重新安装 SSDT-BI,仍然缺少提供程序。

编辑 4: 我已经尝试从 VS 以及 SQL 服务器运行包。该软件包以前可以在这两个地方运行。

编辑 5: 决定通过添加新的用户 DSN 来尝试简单的 ODBC 连接而不是 OLE DB 提供程序。收到此错误:

Microsoft Access ODBC 驱动安装问题:无法加载 odbcji32.dll

这让我找到了this link,它声称最近的 Microsoft Office 更新是罪魁祸首。将尝试安装 Office 2013 运行时。

【问题讨论】:

SSIS 作业在哪里运行? 【参考方案1】:

不幸的是,在这种情况下,应该归咎于最近的 Microsoft Office 更新。安装 Microsoft Access 2013 运行时解决了该问题,发现 here。 Microsoft Access 2016 运行时也可以工作,发现 here,但对我来说它产生了一个错误说明:

Office 程序的 Windows Installer 和即点即用版本不支持此版本...

【讨论】:

很高兴你解决了它!我正在看这个问题,因为大约一年前我遇到了可怕的问题(但不记得解决方案是什么,体验太可怕了:所以我无法发布任何有用的东西)。

以上是关于SSIS 包中的 Run64BitRuntime 不会粘住的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ssis 包中的变量中获取当前周星期一的日期

安装SSIS包中的数据流任务

我的 SSIS 包中的源没有选择前面为零的浮点值

在ssis包中的sp中传递参数问题

SSIS 包中 ReadUncommitted 隔离级别的解决方法

如何在 SSIS 包中使用变量和 SQL 代码?