我希望以1000行的批量对大型行列表运行更新。将update语句放入某些定期执行的DBMS_JOB中时,是否有一种方法可以在受影响的行数变为零后暂停自身?
作业是否可以找到自己的作业ID,以便可以调用DBMS_JOB.Broken()
?
答案 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