我想以 1000 行为单位对大量行进行更新。当将更新语句放入一些定期执行的 DBMS_JOB 中时,是否有办法在受影响的行数变为零后让作业自行挂起?
一个工作可以找到它自己的工作 ID 以便它可以调用DBMS_JOB.Broken()
吗?
我想以 1000 行为单位对大量行进行更新。当将更新语句放入一些定期执行的 DBMS_JOB 中时,是否有办法在受影响的行数变为零后让作业自行挂起?
一个工作可以找到它自己的工作 ID 以便它可以调用DBMS_JOB.Broken()
吗?
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
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;