【发布时间】:2014-11-06 21:51:56
【问题描述】:
我有一个在 Visual Studio 2010 中运行良好的 SSIS 包,但作为 sql server 的作业,它在连接到 ODBC 数据库时失败。
该项目使用密码加密敏感数据。这是因为代理服务器不是我的帐户。它也恰好是使用连接字符串连接到 ODBC 的用户。该作业在 ODBC 连接失败之前成功连接到几个非 ODBC 数据库。
项目设置为在 32 位模式下运行,但奇怪的是,当我将其设置为 64 位时,它会在 ODBC 连接时失败。
所有服务器都设置为使用当前用户运行,除了 ODBC 数据库,它有一个连接字符串。会不会跟这有关系?
这是错误信息
Description: An ODBC error -1 has occurred. End Error Error: 2014-11-07 09:05:14.18 Code: 0xC0014009
Description: There was an error trying to establish an Open Database Connectivity (ODBC) connection with the database server. End Error
Description: The AcquireConnection method call to the connection manager MyODBC failed with error code 0xC0014009.
There may be error messages posted before this with more information on why the AcquireConnection method call failed.
End Error Error: 2014-11-07 09:05:14.18 Code: 0xC0047017 Source: MyDFT SSIS.Pipeline
Description: ODBC Source failed validation and returned error code 0x80004005. End Error
Error: 2014-11-07 09:05:14.18 Code: 0xC004700C Source: MyDFT SSIS.Pipeline
Description: One or more component failed validation. End Error
Error: 2014-11-07 09:05:14.19 Code: 0xC0024107 Source: MyDFT
Description: There were errors during task validation. End Error
DTExec: The package execution returned DTSER_FAILURE (1). Started: 9:05:00 AM Finished: 9:05:14 AM Elapsed: 14.071 seconds.
The package execution failed. The step failed.
提前致谢。
【问题讨论】:
-
请发布错误消息,如果可能的话,请发布您的包装设计界面的图像。
-
连接到你正在运行它的机器。从命令行运行它。它在那里工作吗?这是 SSIS 2012,如果是,您是否使用项目部署模型?
-
添加了错误信息。在命令行中使用 SQL Server 代理步骤中的所有参数运行它会给我同样的错误。该项目是 2010 年的,不幸的是我无法访问 2012 年。在 Visual Studio 中以 64 位运行包给了我同样的错误。代理是否可以在 64 位中运行它,或者它是无关的?
-
检查运行此包的 SQL 代理作业步骤是否设置为以 32 位模式运行。
-
你也可以进入作业属性->步骤->编辑->执行选项->使用32位运行时。
标签: sql-server visual-studio-2010 ssis sql-agent-job