6

我有一个使用 VS 在服务器上开发的 SSIS 包。该包在 Visual Studio 中运行良好,但是当我添加到 SQL Server 代理中的作业时,包失败。我从 SAGE Line 50 v19 中提取数据,因此 ODBC 驱动程序是 32 位的。而且我在 64 位环境中运行。已经将 odbc 设置为 32 位,确保代理设置为运行 32 位,但仍然遇到错误。我已经测试从命令行运行包如下

"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe" /FILE "E:\Reporting\Projects\SSIS\SSIS2012\SSIS2012\Package1.dtsx" /DECRYPT password /CHECKPOINTING OFF  /REPORTING EWCDI

当我运行它时,它工作得很好。但是,当我设置一个 sql 代理作业以作为“操作系统(CmdExec)”运行时,我得到以下输出。

Microsoft (R) SQL Server Execute Package Utility
Version 11.0.2100.60 for 32-bit
Copyright (C) Microsoft Corporation. All rights reserved.

Started:  13:30:44
Info: 2015-02-24 13:30:44.45
   Code: 0x40016044
   Source: Data Flow Task Data Flow Task (SSIS.Pipeline)
   Description: Attempting to upgrade "ODBC Source". The package is attempting to upgrade an extensible object.
End Info
Error: 2015-02-24 13:30:44.59
   Code: 0xC0014020
   Source: SSIS002_SageCompany5Import Connection manager "Sage005.Manager"
   Description: An ODBC error -1 has occurred.
End Error
Error: 2015-02-24 13:30:44.59
   Code: 0xC0014009
   Source: SSIS002_SageCompany5Import Connection manager "Sage005.Manager"
   Description: There was an error trying to establish an Open Database Connectivity (ODBC) connection with the database server.
End Error
Error: 2015-02-24 13:30:44.59
   Code: 0xC00291EC
   Source: Get Max(SourceID) Execute SQL Task
   Description: Failed to acquire connection "Sage005.Manager". Connection may not be configured correctly or you may not have the right permissions on this connection.
End Error
Warning: 2015-02-24 13:30:44.59
   Code: 0x80019002
   Source: SSIS002_SageCompany5Import 
   Description: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
End Warning
DTExec: The package execution returned DTSER_FAILURE (1).

我不明白为什么这在其他地方运行良好。谷歌搜索了几个小时,尝试了我能想到的一切,但没有运气。

4

2 回答 2

0

我正在使用 32 位 DSN 做类似的事情,并且我在 SQL 作业中选中了“32 位运行时”复选框(在 SSIS 作业步骤 - 高级选项卡下)。

查看操作系统 (CmdExec) 选项,它看起来好像有一个“/X86”开关 - 如果您必须从命令行运行或者只选中上面的框,也许可以尝试一下?

当您说代理“设置为运行 32 位”时,如果这是您已经完成的工作,我们深表歉意。

于 2015-06-11T15:05:24.657 回答
0

不是 100% 确定这是否适用于您,但我遇到了类似的问题,我在 ssis 项目中的 cmd 应用程序在 VS 中完美运行,但一旦部署到 ssisdb,它就会挂起,并且永远不会完成,结果证明 cmd 需要用户输入并使用它在 ssisdb 中它没有显示,所以你无法继续,它会出错

希望这有所帮助

于 2016-03-14T08:30:26.000 回答