oracle 定时 job

最近在工作中遇到了要在oracle里面创建一个定时job,从远程数据库里面定时把某张表里面的数据更新到本地服务器上某个表里,具体操作:

1、在自己数据库里面先创建一张表test

create table TEST

(

ID     NUMBER(12),

C_DATE DATE

)

2、创建一个序列 sequence

create sequence G_SEQ

minvalue 1                    --最小值是1

maxvalue 999999999999999999999999999

start with 1             --------从1开始

increment by 1        ---------每次加1

cache 20;


3、创建一个存储过程

create or replace procedure prc_g_test is

begin

insert into g_test values(g_seq.nextval,sysdate);

end prc_g_test;

如:insert into FINANCEINFO(FINANCEID,FINANCENAME,OTHERS) select g_seq.nextval,m.NAME,u.PWD from USERS u,MENU m where u.KEYID=m.ID

4、创建一个job

declare  

job number;     

begin

sys.dbms_job.submit(job,'prc_g_test;',sysdate,'sysdate+1/1440'); //每分钟执行一次

end;

4. 查看作业

select * from dba_jobs;
select job,THIS_DATE, NEXT_DATE, WHAT from dba_jobs;


5.启动定时任务
begin
   dbms_job.run(25);
   commit;
end;

6.停止定时任务
   begin
    dbms_job.remove(25);  //25就是该job的唯一编号
    end;

7.查看编号(jobno)
 select job from dba_jobs;

8.定时器常用的时间格式:

每天运行一次 'SYSDATE + 1'
每小时运行一次 'SYSDATE + 1/24'
每10分钟运行一次 'SYSDATE + 10/(60*24)'
每30秒运行一次 'SYSDATE + 30/(60*24*60)'
每隔一星期运行一次 'SYSDATE + 7'

原文地址:https://www.cnblogs.com/bin521/p/6932898.html