DTExec:包执行在SSIS包执行中返回DTSER_FAILURE(1)

d29*_*907 3 ssis execution extract-error-message ssis-2012

我在sis的一个项目中遇到了这个问题。我不得不将原始项目分成不同的程序包,因为这太大了,有时可能会引起内存问题。因此,为了链接不同的程序包,我使用“执行程序包任务”相互引用。如果我直接从SSIS执行该程序包,则可以完美运行,这没有问题。但是,如果我使用调度程序对执行时间进行编程,则会收到以下错误消息:

错误:2015-09-22 14:54:37.98代码:0xC00220E6源:执行包任务说明:没有要引用的项目。结束错误错误:2015-09-22 14:54:37.99代码:0xC0024107源:执行程序包任务说明:任务验证期间出错。结束错误DTExec:程序包执行返回DTSER_FAILURE(1)。

我想知道项目及其执行会发生什么。

问候

sor*_*ell 5

我不确定您使用的是什么调度程序,也不知道它是如何配置的,但是您可以通过使用DTExec模拟调度程序来调试自己的方式。听起来您已经越过了Setupand Execution Method(请参见下面的定义)。

这是摘要。

  1. 选项1:对于Setup,使用Project References,对于Execution Method,使用Project/Package
  2. 选项2:对于安装程序,对于每个子程序包,请使用External References,对于执行方法,请使用File

(这听起来像你正在使用的组合Project ReferencesFile,进而发送There is no project to reference错误关子包)。

选项1

设定

在SSDT中打开您的父程序包,然后双击一个子程序包。它看起来应该像这样: 项目参考

执行方式

此设置意味着您需要通过DTExec通过Project / Package方法执行包。因此,构建您的项目-这将生成一个ispac文件。并通过dtexec执行,它看起来像:

dtexec /Proj Path\To\MyProject.ispac /Pack Path\To\The\ParentPackage.dtsx

注意:如果您在参数中指定dtsproj文件而不是ispac文件/Proj,则会收到File contains corrupted data错误消息!

选项2

设定

在SSDT中打开您的父程序包,然后双击一个子程序包。将其更改为如下所示: 外部参考

这可以通过以下步骤完成:
1.将引用类型更改为外部引用
2.将位置更改为文件系统(SQL Server是另一种选择)
3.选择<New connection...>以创建新文件连接以运行子包(或SQL Server连接)

执行方式

此设置意味着您现在可以使用File方法,这可能是您尝试执行程序包的方式。

dtexec /f Path\To\My\ParentPackage.dtsx