0

我有一个程序应该有选择地从系统中清除作业。它用于dbms_schedule.drop_job执行此操作。

我希望能够在光标中循环遍历一组作业,每个作业都被删除。如果因为作业不存在而引发异常,我想捕获异常并继续循环。

4

1 回答 1

2

没有真正需要这样做。为什么不ALL_SCHEDULER_JOBS使用正确的模式和作业名称将光标内部连接到 ?

这样你就可以保证这份工作确实存在。如果你想做一些除了忽略错误之外的事情,例如更新列表,你可以很容易地在代码中完成;无需使用异常进行流量控制。

如果您真的想使用异常,则可以使用用户定义的异常。或者(不一定是一个好主意)绝对抓住一切;例如:

begin
   -- some stuff
   begin
      dbms_scheduler.drop_job(job_name => 'my_job');
   exception when others then
      -- do some stuff
   end;

end;
于 2012-07-30T19:19:01.670 回答