暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle Job

南风悠然 2018-06-13
312

1. 手动运行Job

 

括号中为job

 

1.1 使用sys用户运行

 

exec dbms_ijob.run(4)

 

1.2 使用本身用户运行

 

exec dbms_job.run(4)

 

2. 删除Job

 

exec dbms_ijob.remove(862)

commit;

 

3. 停止&开启job

 

EXEC DBMS_IJOB.BROKEN(1591,TRUE);

COMMIT;

EXEC DBMS_IJOB.BROKEN(552,FALSE);

COMMIT;

 

4. 设置Job可同时运行数量

 

设置为0表示禁止job运行

 

ALTER SYSTEM SET job_queue_processes =20;

 

5. 建立Job

 

5.1 每五分钟运行一次

 

declare test_job_really number ;

begin

dbms_job.submit(test_job_really,'dcprod_queue_job;',sysdate ,'sysdate+5/1440');

commit;

end;

 

5.2 每周日20点执行(立即执行一次)

 

declare test_job_really number ;

begin

dbms_job.submit(job=>test_job_really,

what=>'PKG_BONUS_JOB.EXECUTE_WEEKLY;',

next_date=>sysdate ,

Interval => 'NEXT_DAY(TRUNC(SYSDATE),1)+20/24'

);

commit;

end;

 

5.3 每周日4点执行(不立即执行)

 

declare job number;

begin

sys.dbms_job.submit(job,'PKG_NME_BONUS.AutoRunData;',

to_date('25-06-2017 04:00:00', 'dd-mm-yyyyhh24:mi:ss'),

'TRUNC(next_day(sysdate,1))+4/24');

commit;

end;

 

5.4 每天七点运行

 

declare test_job_really number ;

begin

dbms_job.submit(job=>test_job_really,

what=>'dcb2b.P_SAPAccount_SendMail;',

next_date=>to_date('18-04-201707:00:00','dd-mm-yyyy hh24:mi:ss'),

Interval => 'TRUNC(sysdate) + 1 +7/24'

);

commit;

end;

 

5.5 每三个月的的一号(从当前月份算起)

 

declare test_job_really number ;

begin

dbms_job.submit(job=>test_job_really,

what=>'P_EXT_SendMail;',

next_date=>sysdate,

Interval => 'ADD_MONTHS(TRUNC(SYSDATE,''MM''),3)'

);

commit;

end;

 

6. 更改Job执行频率

 

更改至下一个小时

 

BEGIN

DBMS_JOB.CHANGE(289,null,null,'TRUNC(SYSDATE,''HH24'')+1/24');

END;


文章转载自南风悠然,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论