Sqlserver和Oracle上的定时任务创建

Sqlserver和Oracle上的定时任务创建

 

Sqlserver上的定时任务创建

1.打开sql server 代理

2.右击作业,新建作业

3.选择步骤选项,新建步骤

4.在步骤的常规选项输入步骤名称,选中数据库,填写sql语句:

  delete  MTC_TASKLOG where CREATE_TIME < getdate();

5.选步骤的高级选项,由于只建了一个步骤,所以需要在成功时要执行的操作选项中选择退出报告成功的作业

6.选择计划选项,填写名称,并选择执行的频率为每天,时间点为凌晨1点,点击确定.

7.选择sql server 代理,右击启动,确定,定时任务就生效。

 

其他:可以临时修改计划选项的时间,以验证sql命令是否立即按要求执行。

 

附图1-7:

图1:

 

图2

 

图3

 

 

图4

 

图5

 

图6

 

图7

 

图8

 

Oracle上的定时任务创建

1. 创建删除MTC_TASKLOG的存储过程

create or replace procedure clear_mtctasklog_pro   as  
begin  

delete  MTC_TASKLOG where CREATE_TIME < sysdate;
end clear_mtctasklog_pro; 

2.创建定时任务,每天凌晨1点执行,默认是创建后就执行的

--建立job  
--建立job后默认是执行的  
declare  mtc_job number;  
begin  
dbms_job.submit(mtc_job,'clear_mtctasklog_pro;',sysdate,' TRUNC(sysdate) + 1 +1 / (24)');  
commit;  
end;  

 

完。

 

其他命名供参考:

---停止job  25是建立的job test_job_really  
begin  
dbms_job.broken(25,true);  
commit;  
end;  

--启动job  
begin  
dbms_job.run(25);  
commit;  
end;  
 
--删除job  
  
begin   
dbms_job.remove(25);  
commit;  
end;  
 
--查看执行结果  
select  * from test_job order by test_job.para_date desc;   

--查看job  
select * from sys.user_jobs   
  
--使用下面的SQL查询是否JOB还在Running,前提是需要job执行时间不能过短  
  
select * from dba_jobs_running  

--除了submit参数外,其余的几个参数有:  
--运行job 
dbms_job.run(v_job);  
      
--停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。  
dbms_job.broke(v_job,true,next_date); 
       
--删除某个job  
dbms_job.remove(v_job);  
dbms_job.what(v_job,'sp_fact_charge_code;'); 
      
--修改某个job名 修改下一次运行时间  
 dbms_job.next_date(v_job,sysdate); 

 

上面的数字25指的是定时任务的ID,如图:

 

posted @ 2015-09-07 12:59  许仙来了  阅读(867)  评论(0编辑  收藏  举报