Oracle 响应计划作业的完成

Oracle 响应计划作业的完成,oracle,scheduled-tasks,Oracle,Scheduled Tasks,我有一个运行良好的计划,直到它没有。当它失败时,它使用回滚,这是所需的行为。它仍然会这样做,但现在其中有一些DDL语句正在提交,这完全改变了这种情况的发生方式,因为它只回滚到最后一次提交,而不是整个作业 我想在作业开始时添加还原点的创建,然后对作业的完成做出响应,如果失败,则使用还原点,如果成功,则删除还原点 我不明白的是,如何让某些东西自动响应作业的完成,就像触发器响应表的更改一样。我可能会有另一个任务被解雇,等待这个任务完成,然后完成它的工作,但这是在浪费资源,我觉得这是一个糟糕的解决方案,

我有一个运行良好的计划,直到它没有。当它失败时,它使用回滚,这是所需的行为。它仍然会这样做,但现在其中有一些DDL语句正在提交,这完全改变了这种情况的发生方式,因为它只回滚到最后一次提交,而不是整个作业

我想在作业开始时添加还原点的创建,然后对作业的完成做出响应,如果失败,则使用还原点,如果成功,则删除还原点

我不明白的是,如何让某些东西自动响应作业的完成,就像触发器响应表的更改一样。我可能会有另一个任务被解雇,等待这个任务完成,然后完成它的工作,但这是在浪费资源,我觉得这是一个糟糕的解决方案,而我确信一定有更好的方法


不,我不能使用链式作业。

为什么要以这种方式使用DDL?如果可能,请在运行作业之前执行所有DDL。顺便问一下,它是什么类型的DDL?@Littlefoot DDL用于打开和关闭触发器,因为它们的行为在计划作业的运行期间是需要的或不需要的。在一个案例中,它们被用来对表中的新记录或更改记录执行基本审核;谢谢嗯,我希望有更容易修复的东西,我想你可能正在动态创建一些表…@Littlefoot不,所有的DDL语句都是为了改变触发器。但你的评论实际上让我想到了它们,交易,以及根据作业失败的时间和地点会发生什么。很明显,DDL语句是危险的,因为在打开或关闭DDL语句之后,如果一个语句在返回正常状态和回滚发生之前失败,它将保持该状态。如果没有那么多数据,也许可以一直启用这些触发器。他们可能会放慢速度,如果有。。。我不知道,数百万行。你们测试过它了吗?它在触发器打开的情况下是如何工作的,并将它与当前的原理进行比较(打开和关闭它们)?