您的位置:首页 > 数据库 > Oracle

oracle job 的操作SQL

2016-03-17 09:18 417 查看

oracle job 的操作SQL

 

不同oracle 客户端工具,操作界面或功能不同,job功能有时找不到,现整理关于JOB相关的SQL以及说明如下,供参考。

 

1、创建job

DECLARE

  PX_TJ_HOMEPAGE NUMBER; 

BEGIN 

  DBMS_JOB.SUBMIT(PX_TJ_HOMEPAGE,'PX_TJ_PRE_DAY;',sysdate,'TRUNC(sysdate)+1+2/24');

   --2/24 每天凌晨2点

  COMMIT; --创建好自动执行一次

END;

 

其中PX_TJ_PRE_DAY是存储过程的名称,注意后面要加上分号;

 

2、查看job

select job,last_date,last_sec,next_sec,total_time,interval,what

from user_jobs

 

 

3、停止job

---停止job  25是建立的job 编号  

begin  

dbms_job.broken(25,true);  

commit;  

end;  

4、启动JOB

 --启动job  

begin  

dbms_job.run(25);  

commit;  

end; 

5、运行JOB

declare

begin

dbms_job.run(<job>_ID)

end;

 

6、删除JOB

 

--删除某个job  

dbms_job.remove(v_job);  

 

7、job调用带参数的过程

begin
  sys.dbms_job.submit(job => :job,
                      what => 'begin
seq_reset(''mysequence'');
end;',
    next_date => to_date('09-07-2010 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),
     interval => 'trunc(sysdate)+2/24+1');
  commit;
end;
 

注意:调用的语句需要写在begin和end之间,需要两个单引号;

 

8、间隔时间说明

 

描述 INTERVAL参数值

每天午夜12点: 'TRUNC(SYSDATE + 1)'

每天早上8点30分: 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'

每星期二中午12点: 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) +12/24'

每个月第一天的午夜12点: 'TRUNC(LAST_DAY(SYSDATE ) + 1)'

每个季度最后一天的晚上11点: 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' )-1/24'

每星期六和日早上6点10分: 'TRUNC(LEAST(NEXT_DAY(SYSDATE,''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

每月25号00:00执行: 'TRUNC(LAST_DAY(SYSDATE ) + 25)'

--------------------------

1:每分钟执行

Interval=> TRUNC(sysdate,'mi') + 1/ (24*60)



Interval=> sysdate+1/1440

 

2:每天定时执行

例如:每天的凌晨1点执行

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

 

3:每周定时执行

例如:每周一凌晨1点执行

Interval=> TRUNC(next_day(sysdate,'星期一'))+1/24

 

4:每月定时执行

例如:每月1日凌晨1点执行

Interval=>TRUNC(LAST_DAY(SYSDATE))+1+1/24

 

5:每季度定时执行

例如每季度的第一天凌晨1点执行

Interval=> TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

 

6:每半年定时执行

例如:每年7月1日和1月1日凌晨1点

Interval=> ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

 

7:每年定时执行

例如:每年1月1日凌晨1点执行

Interval=>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: