问题描述
我正在 VS 2012 中开发一个正在部署到 SQL Server 2012 的 SSIS 包.该包正在从具有 32 位驱动程序的外部数据库中提取数据并将其加载到 SQL Server 2012 中.我已经设置了包它使用项目参数来存储连接字符串.
I am developing an SSIS package in VS 2012 that is being deployed to SQL Server 2012. The package is pulling data from an external database with a 32 bit driver and loading it into SQL Server 2012. I have the package set up so that it is using project parameters to store the connection strings.
我可以从 VS 运行包,也可以通过 32 位 dtexec 运行包.我无法从 SQL 代理运行包.我已将作业设置为使用 ssis 代理帐户.
I can run the package from VS and I can also run the package via 32 bit dtexec. I cannot run the package from the SQL agent. I have the job set up so that it is using a ssis proxy account.
我还尝试使用在 32 位 dtexec 中运行包的执行进程任务来运行包.
I have also tried to run a package with an execute process task that runs the package in 32 bit dtexec.
我在所有情况下都会收到以下错误.尽管我无法弄清楚它是什么,但它似乎是 32/64 位问题或权限问题.任何帮助将不胜感激!
I get the following error in all cases. It seems to be either a 32/64 bit issue or a permissions issue although I cannot figure out what it is. Any help would be greatly appreciated!
数据流任务:错误:对连接管理器 MyDataBaseConMgr 的 AcquireConnection 方法调用失败,错误代码为 0xC0014009.在此之前可能会发布错误消息,其中包含有关 AcquireConnection 方法调用失败原因的更多信息.
推荐答案
与 SSDT 不同,SQL Server 代理在 64 位模式下运行.您可以通过遍历
Unlike SSDT, SQL Server agent runs on 64 bit mode. You can configure SQL job to run on 32 bit mode by traversing to
步骤 > 编辑 > 配置 > 高级
这篇关于SSIS 64 位与 32 位的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!