今天做了个测试,想看下如果正在运行的定时JOB被broken后会怎样,我原以为定时job会停止继续起job,而正在运行的job会继续跑完,但是测试结果我只猜对了一半。
1.建立定时job
declare
job number;
begin
dbms_job.submit(job,'FOR i IN 1..500000 LOOP
insert into a (id,m_name) values (1,''aaaa'');
END LOOP;
COMMIT;',sysdate+1/1440,'sysdate+1/1440');
COMMIT;
end;
2. 查看dba_jobs_running,当job正在跑的时候broken job
BEGIN
DBMS_JOB.broken(49,TRUE);
COMMIT;
END;
3.查看Dba_Jobs中job情况
SELECT t.LAST_SEC,t.THIS_SEC,t.NEXT_SEC,t.BROKEN,t.FAILURES,t.*
FROM Dba_Jobs t WHERE t.LOG_USER='ORACLE' AND t.JOB=49;