【问题标题】:Parent - Child SSIS Package Execution父 - 子 SSIS 包执行
【发布时间】:2021-02-18 01:23:12
【问题描述】:

我有两个名为 Parent.dtsx 和 Child.dtsx 的 SSIS 包。
为简单起见,子包干脆 在 oracle 表中插入一行,此 .dtsx 具有用于 Oracle 连接的 EncryptSensitiveWithPassword

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

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

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

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

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

【问题讨论】:

    标签: ssis ssis-2012


    【解决方案1】:

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

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

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

    【讨论】:

    • 仍然遇到同样的错误。另外,我注意到在输入 /DECRYPT mypw 并单击“确定”后。我回到屏幕,发现 /DECRYPT 参数不存在。这是预期的吗?然后我决定登录到集成服务并执行 Parent -> Run Package,编辑命令行以包含 /decrypt 并单击“执行”。它也因相同的 ORA 错误 NULL 密码而失败。它肯定会调用 Child.dtsx,因为那是我有 Oracle 连接的地方。
    【解决方案2】:

    修复它。我已经在 Execute Package 任务中输入了密码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 2010-10-25
      相关资源
      最近更新 更多