我正在尝试设置一个SSIS包,它通过执行流程任务调用其他包。一切正常,直到我决定尝试使用配置文件执行包。最初的表达是:
"/REP E /f " + @[User::screenName] + ".dtsx "
我把它改成了
"/REP E /conf .\\<myconfigfile>.dtsConfig /f " + @[User::screenName] + ".dtsx"
让我The process exit code was "4" while the expected was "0".
和
"/REP E /conf d:\\<dir1>\\<dir2>\\packages\\<myconfigfile>.dtsConfig /f " + @[User::screenName] + ".dtsx"
让我The process exit code was "6" while the expected was "0".
如果我接受命令并从命令行运行它,如下所示:
dtexec.exe /REP E /conf .\<myconfigfile>.dtsConfig /f <myssispackage>.dtsx
或
dtexec.exe /REP E /conf "w:\<dir1>\<dir2>\<myconfigfile>.dtsConfig" /f <mySSISpackage>.dtsx
它工作正常。
有什么办法可以得到更好的错误信息吗?我认为有一些关于导致问题的表达方式。
答案 0 :(得分:0)
确保定位正确的dtexec
可执行文件。从命令行执行到Execute Process任务中使用的PATH时,可能不同。
来自http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/126293/的一个好建议是搜索硬盘驱动器的所有外观。该文章中有非常详细的说明。
编辑:哎呀,也许退出代码告诉我们什么?
https://docs.microsoft.com/en-us/sql/integration-services/packages/dtexec-utility#exit
4:该实用程序无法找到所请求的包。无法找到包裹。
6:该实用程序在命令行中遇到语法或语义错误的内部错误。
类型6的错误可能与转义字符有关。 如果您尝试添加一些额外转义的双引号会怎样?
"/REP E /conf \"d:\\<dir1>\\<dir2>\\packages\\<myconfigfile>.dtsConfig\" /f " + @[User::screenName] + ".dtsx"