如何判断SCHEDULER JOB是否正在运行?
♣ 答案部分
可以查询DBA_SCHEDULER_JOBS视图的STATE列,若STATE列的值为RUNNING,则代表当前的JOB正在运行。或者通过查询视图DBA_SCHEDULER_RUNNING_JOBS,该视图中的JOB即正在运行的JOB。如下所示,作者给出一个具体的SQL用于查询:
SELECT J.JOB_NAME,
J.STATE,
J.JOB_TYPE,
J.JOB_ACTION,
J.SCHEDULE_TYPE,
J.REPEAT_INTERVAL,
J.START_DATE,
RJ.SESSION_ID,
RJ.RUNNING_INSTANCE,
RJ.CPU_USED ,
(SYSDATE-J.START_DATE) 已运行时间
FROM DBA_SCHEDULER_JOBS J,
DBA_SCHEDULER_RUNNING_JOBS RJ
WHERE J.JOB_NAME = RJ.JOB_NAME
AND J.JOB_NAME = 'JB'; --JOB的名称