我在Server2上有一个SSIS包(2008,64位),我试图使用xp_cmdshell使用命令从server1(2005,32位)调用它,
exec xp_cmdshell 'dtexec /FILE "\\Wdvwd99a0234\PWOSSIS\RTS_SSIS\RTS_ETL.BE_2_DUNSMasterPackage.dtsx"'
它一直给出错误:
Microsoft(R)SQL Server执行包实用程序版本9.00.5000.00 适用于32位版权所有(C)Microsoft Corp 1984-2005。所有权利 保留。 NULL开始时间:1:00:42 PM错误:2012-11-29 13:00:42.83
代码:0xC001700A来源:描述:版本号 包裹无效。版本号不能大于 当前版本号。结束错误错误:2012-11-29 13:00:42.83
代码:0xC0016020来源:描述:从中迁移包 版本3到版本2失败,错误0xC001700A“版本 包中的数字无效。版本号不能 大于当前版本号。“。结束错误错误:2012-11-29 13:00:42.83代码:0xC0010018来源:说明:错误 从节点加载值“3” “DTS:属性”。结束错误无法加载包 “\ Wdvwd99a0234 \ PWOSSIS \ RTS_SSIS \ RTS_ETL.BE_2_DUNSMasterPackage.dtsx” 因为错误0xC0010014。说明:程序包无法加载 由于错误0xC0010014“发生了一个或多个错误。应该有 在此之前的更具体的错误解释了细节 错误。此消息用作函数的返回值 遇到错误。“。当CPackage :: LoadFromXML失败时会发生这种情况。 来源:已开始:1:00:42 PM完成时间:1:00:42 PM经过:0.078 秒NULL
答案 0 :(得分:3)
正如其他人所评论的那样,dtexec.exe的版本需要与目标软件包的版本相匹配。你的选择是
RTS_ETL.BE_2_DUNSMasterPackage.dtsx
然后您将启动该作业来代替当前的xp_cmdshell。 EXECUTE msdb.dbo.sp_start_job 'RTS_ETL.BE_2_DUNSMasterPackage'
这种方法有两点需要注意
答案 1 :(得分:2)
使用2005软件包实用程序无法运行2008软件包。