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,如图: