ORACLE中JOB的使用
JOB:和JAVA中的job类似,都是定时任务。 首先,建表: -- Create table create table MYDAILYDK ( ID NUMBER(19) not null,NAME VARCHAR2(255),DKTIME DATE ) tablespace NG_DATA pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); 然后,建个存储过程,用来向表里插入数据: create or replace procedure mbproc_mydailydk as begin insert into mydailydk(id,name,dktime) values(s_madailydk.nextval,'小明',sysdate); commit; end; JOB参数简介: /** job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。 创建JOB: begin sys.dbms_job.submit(job => :job,what => 'mbproc_mydailydk;',next_date => to_date('08-11-2016 14:22:08','dd-mm-yyyy hh24:mi:ss'),interval => 'sysdate+1'); commit; end; 说明:ORACLE会自动生成唯一的JOB标识,就是submit的第一个参数。 查看创建的job: select * from user_jobs; 手动运行Job,参数为自动生成的唯一标识,我的是64,把:job换成64即可,由于我的开始时间是sysdate,手动每天的这个时候去执行一次,因此查看存储过程中插入的表会有一条数据插入: begin dbms_job.run(:job); end; 查看被插入的表: select * from mydailydk; 停止job: begin dbms_job.broken(64,true); end; 删除job: begin dbms_job.remove(64); end; 另外,关于 dbms_job 这个pakage中的其它函数请自行查阅:change()、Interval()、Isubmit()、Next_Date()等等。 附上pakage的文档的连接: https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_job.htm#i1000681 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |