Oracle job
1、创建job定时任务
variable job_create_table number;
begin
dbms_job.submit(:job_create_table ,'create_table_customer;',trunc(sysdate)+1/24,'TRUNC(LAST_DAY(SYSDATE))+1+1/24'); --每月1日凌晨1点执行,从今天开始
end;
/
2、运行job定时任务
begin
dbms_job.run(:job_create_table );
end;
/
3、删掉job定时任务
begin
dbms_job.remove(:job_create_table );
end;
/
4、创建存储过程
create or replace procedure create_table_customer is
begin
commit;
end create_table_customer;
/
实际使用:
在plsql中执行如下脚本可以创建一个在每天晚上23点执行的job
begin
sys.dbms_job.submit(job => :job, -- job编号
what => 'dbms_output.pub_line(''asdf'');', -- 执行脚本
next_date => to_date('17-01-2011 16:17:31', 'dd-mm-yyyy hh24:mi:ss'), -- 下次执行时间
interval => 'trunc(sysdate)+23/24'); -- 执行时间间隔
commit;
end;
其中:interval 参数的几个可能的示范值如下:
A,每5分钟执行一次
interval => 'trunc(sysdate,'mi')+5/24/60'
B,每小时执行一次,整点执行
interval => 'trunc(sysdate,'HH')+1/24'
C,一个小时后执行
interval => 'sysdate+1/24'