DBMS_JOB如何将自己标记为已损坏?

时间:2012-09-07 12:54:25

标签: oracle scheduling jobs

我希望以1000行的批量对大型行列表运行更新。将update语句放入某些定期执行的DBMS_JOB中时,是否有一种方法可以在受影响的行数变为零后暂停自身?

作业是否可以找到自己的作业ID,以便可以调用DBMS_JOB.Broken()

2 个答案:

答案 0 :(得分:2)

JOB ID是JOB列:

select * from dba_jobs

当前正在运行的工作:

select dbr.sid, s.serial#, s.username, dbj.* 
from dba_jobs_running dbr, dba_jobs dbj , v$session s 
where dbr.job=dbj.job and s.sid=dbr.sid;

答案 1 :(得分:2)

select JOB from all_jobs
where what like '%YOUR_JOB_PROCEDURE%';

另外,我建议使用DBMS_SCHEDULER而不是DBMS_JOB,如果它在Oracle版本中也可用 http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htm