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 模拟调度程序来调试。听起来您已经越过了 Setup
和 Execution Method
(这些定义见下文)。
这是摘要。
-
选项 1: 对于设置,使用
Project References
,对于执行方法,使用 Project/Package
。
选项 2: 对于设置,对于每个子包,使用 External References
,对于执行方法,使用 File
。
(听起来您正在使用Project References
和File
的组合,这反过来又会从子包中发送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)的主要内容,如果未能解决你的问题,请参考以下文章