我正在 SSIS 2012 中处理数据集市加载包。当尝试在 Visual Studio 中执行该包时,我收到此错误:
”AcquireConnection方法调用连接管理器数据
Warehouse.ssusr 失败,错误代码为 0xC0014009”。
当我测试 Connection Manager Data Warehouse.ssusr 的连接时,我发现它通过了。
当我使用执行包实用程序在 Visual Studio 外部执行包时,该包将运行。
我不明白发生了什么事。
该包还拒绝使用 SQL Server 作业计划运行(如果这与任何事情有关)。
在这里做一些假设,但我假设这是 32 位与 64 位的问题。要进行验证,请在命令提示符下尝试这两个命令(Windows 键、R、cmd.exe 或“开始”、“运行”、cmd.exe)
"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx
"C:\Program Files\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx
第一个将以 32 位模式运行您的软件包,而第二个以 64 位模式运行您的软件包。这很重要,因为您的驱动程序和您创建的任何 DSN 将仅在 32/64 位世界中可见。
修复 SSDT
一旦确定了您需要的版本(可能是 32 位版本),您需要确保您的项目使用适当的运行时。右键单击您的项目并选择“属性”,然后导航到“配置属性”下的“调试”选项卡。
反转 Run64BitRuntime 值后,我假设您的包将在 SSDT 中工作。
修复 SQL 代理
您将需要编辑现有的 SQL 代理作业以更改作业步骤的位数。这将位于“配置”选项卡下,然后位于“高级”选项卡下。选中/取消选中 32 位运行时。
谎言和欺骗
细心的人可能会发现dtexec http://msdn.microsoft.com/en-us/library/ms162810%28v=sql.105%29.aspx提供/X86
选项。别相信。获得正确位数的唯一方法是显式调用正确的 dtexec.exe 文档甚至说了这么多,但没有人阅读文档。
此选项仅由 SQL Server 代理使用。该选项被忽略
如果您在命令提示符下运行 dtexec 实用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)