select * dba_jobs可以看到各个字段
问题是:
我怎么在程序里判断一个job是否已经完全正确执行了?
我想得到一个判断表达式形如: 字段条件1 && 字段条件2 || 字段条件3.....
eg: if (broken = 'N' || ......) then
那么执行成功;
else
执行失败
问题是:
我怎么在程序里判断一个job是否已经完全正确执行了?
我想得到一个判断表达式形如: 字段条件1 && 字段条件2 || 字段条件3.....
eg: if (broken = 'N' || ......) then
那么执行成功;
else
执行失败
这些字段完全可以判断是否执行成功了。if broken='Y' then 失败
elsif INTERVAL时间约等于next_date-last_date并且failures=0说明执行成功
关键是用sql怎样把interval给解析了,有点难度。
不过也可以用下面的方法判断是否正确执行:
declare
v_f int;
v_t int;
v_str_flag CHAR(1);
begin
FOR c in(SELECT job,total_time,failures,broken FROM dba_jobs) LOOP
IF c.broken='Y' THEN
dbms_output.put_line('job='||c.job||' failed!');
ELSIF c.total_time>0 AND c.failures=0 THEN
dbms_output.put_line('job='||c.job||' sucessed!');
END IF;
END LOOP;
end;
/