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

Posted

技术标签:

【中文标题】DTExec:包执行在SSIS包执行中返回DTSER_FAILURE(1)【英文标题】:DTExec: The package execution returned DTSER_FAILURE (1) in SSIS package execution 【发布时间】:2015-09-22 20:32:52 【问题描述】:

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

错误:2015-09-22 14:54:37.98 代码:0xC00220E6 源:执行包 任务描述:没有项目可以参考。结束错误错误: 2015-09-22 14:54:37.99 代码:0xC0024107 来源:执行包任务 描述:任务验证期间出现错误。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。

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

问候

【问题讨论】:

【参考方案1】:

我不确定您使用的是什么调度程序,或者它是如何配置的,但您可以通过使用 DTExec 模拟调度程序来调试。听起来您已经越过了 SetupExecution Method(这些定义见下文)。

这是摘要。

    选项 1: 对于设置,使用 Project References,对于执行方法,使用 Project/Package选项 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

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

选项 2

设置

在 SSDT 中打开您的父包,然后双击子包。将其更改为如下所示:

这是由完成的 1. 将参考类型更改为外部参考 2. 将位置更改为文件系统(SQL Server 是另一种选择) 3.选择<New connection...>为子包创建新的文件连接运行(或SQL服务器连接)

执行方式

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

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

【讨论】:

以上是关于DTExec:包执行在SSIS包执行中返回DTSER_FAILURE(1)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用配置命令行执行 SSIS 包

DTExec运行SSIS包日志设置无效问题解决

SSIS 包 - 由于错误 0xC0014062 无法加载包

执行SSIS包时出现mysql错误

如何从 Excel VBA 运行 SSIS 包

无法从 dtexec 在 sql server 2008 中执行 DTS