首页 > 解决方案 > 父 - 子 SSIS 包执行

问题描述

我有两个名为Parent.dtsxChild.dtsx 的 SSIS 包。
为简单起见,子包只是将一行插入到一个 oracle 表中,这个 .dtsxEncryptSensitiveWithPassword用于 Oracle 连接。

父包只有一个任务,Execute Package Task它调用Child.dtsx.
父包具有ReferenceType = ExternalReference指向 SQL Server 的连接,该连接同时包含parent.dtsxchild.dtsx

Child.dtsx在 Visual Studio 中运行良好。我得到插入的行。如果我parent.dtsx通过 sql 代理作业运行,我会收到一条错误消息:

“ORA-01005:给出了空密码;登录被拒绝”

但是,如果我登录到集成服务并手动执行"Child -> Run Package",它工作正常。当然,我会弹出询问包裹密码的弹出窗口,因为它是加密的。

为什么我不能通过SQL Agentto execute运行parent.dtsx?如果我将代理作业步骤更改为运行 child.dtsx,那么它可以工作。

标签: ssisssis-2012

解决方案


主要原因是您没有提供password软件包来解密它的敏感部分(凭据所在的位置)。

要解决此问题,请在代理作业主干下手动编辑命令行以提供密码。

在此处输入图像描述

建议使用rely on server for encryption包保护级别。


推荐阅读