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:
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125751684-1839584719.png)
图2:
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125759809-1740966524.png)
图3:
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125806919-1015834554.png)
图4:
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125813294-346956474.png)
图5
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125819637-1534304174.png)
图6:
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125826044-491657031.png)
图7
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125832340-1840817551.png)
图8:
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125837840-2046450972.png)
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,如图:
![](https://images2015.cnblogs.com/blog/302698/201509/302698-20150907125849840-554288760.png)