ORACLE中JOB的应用 1、创建存储过程 create or replace procedure *pro_name as begin insert into agri_exhibition_basecur (messid,title,type,pub_date) select id,title,sort,pub_date from agri_message where (trunc(sysdate-pub_date)=0 and rownum<6) and sort='供' ; insert into agri_exhibition_basecur (messid,title,type,pub_date) select id,title,sort,pub_date from agri_message where (trunc(sysdate-pub_date)=0 and rownum<6) and sort='求' ; end; / 2、创建JOB variable jobdxm number; begin dbms_job.submit(:jobdxm,'exhi_pro_dxm;',sysdate,'trunc(sysdate,''dd'')+32.5/24'); end;一个简单的JOB实列 1、创建测试表 SQL> create table a(a date);表已创建。2、创建一个自定义过程 SQL> create or replace procedure test as 2 begin 3 insert into a values(sysdate); 4 end; 5 /过程已创建。3、创建JOB SQL> variable job1 number; SQL> SQL> begin 2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次 3 end; 4 /PL/SQL 过程已成功完成。4、运行JOB SQL> begin 2 dbms_job.run(:job1); 3 end; 4 /PL/SQL 过程已成功完成。SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;时间 ------------------- 2001/01/07 23:51:21 2001/01/07 23:52:22 2001/01/07 23:53:245、删除JOB SQL> begin 2 dbms_job.remove(:job1); 3 end; 4 /PL/SQL 过程已成功完成。6、一些必要的参数 修改initsid.ora参数 job_queue_processes = 4 job_queue_interval = 10 job_queue_keep_connections=true修改可执行作业个数为20个 ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20修改取消限制模式 ALTER SYSTEM DISABLE RESTRICTED SESSION;7、两个必要的表 user_jobs及dba_jobs_running8、相关的几个JOB操作 删除job:dbms_job.remove(jobno); 修改要执行的操作:job:dbms_job.what(jobno,what); 修改下次执行时间:dbms_job.next_date(job,next_date); 修改间隔时间:dbms_job.interval(job,interval); 停止job:dbms.broken(job,broken,nextdate); 启动job:dbms_job.run(jobno);
1、创建存储过程
create or replace procedure *pro_name
as
begin
insert into agri_exhibition_basecur (messid,title,type,pub_date) select id,title,sort,pub_date from agri_message where (trunc(sysdate-pub_date)=0 and rownum<6) and sort='供' ;
insert into agri_exhibition_basecur (messid,title,type,pub_date) select id,title,sort,pub_date from agri_message where (trunc(sysdate-pub_date)=0 and rownum<6) and sort='求' ;
end;
/
2、创建JOB
variable jobdxm number;
begin
dbms_job.submit(:jobdxm,'exhi_pro_dxm;',sysdate,'trunc(sysdate,''dd'')+32.5/24');
end;一个简单的JOB实列
1、创建测试表
SQL> create table a(a date);表已创建。2、创建一个自定义过程
SQL> create or replace procedure test as
2 begin
3 insert into a values(sysdate);
4 end;
5 /过程已创建。3、创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;
4 /PL/SQL 过程已成功完成。4、运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /PL/SQL 过程已成功完成。SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;时间
-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:245、删除JOB
SQL> begin
2 dbms_job.remove(:job1);
3 end;
4 /PL/SQL 过程已成功完成。6、一些必要的参数
修改initsid.ora参数
job_queue_processes = 4
job_queue_interval = 10
job_queue_keep_connections=true修改可执行作业个数为20个
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20修改取消限制模式
ALTER SYSTEM DISABLE RESTRICTED SESSION;7、两个必要的表
user_jobs及dba_jobs_running8、相关的几个JOB操作
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);