oracle 定时脚本

来源:互联网 发布:小说 超级基因优化液 编辑:程序博客网 时间:2024/04/30 23:37

一直在用linux 的 crontab 突然想用oracle 写一个简单的job

create table test(
   car_no varchar2(30),
   car_info_id number);

 

 

create or replace procedure pro_test
   as 
  carinfo_id number;
   begin
    select test_seq.nextval into carinfo_id  from dual;
    insert into test (car_no,car_info_id) values (carinfo_id,123);
    commit;
    end pro_test;
    /

  DBMS_JOB.SUBMIT参数的含义如下

 

VARIABLE JOB NUMBER;
BEGIN
  DBMS_JOB.SUBMIT(
    JOB => :JOB,  /*自动生成JOB_ID*/
    WHAT => 'CREATE_TASK_BY_PLAN;',  /*需要执行的过程或SQL语句*/
    NEXT_DATE => TRUNC(SYSDATE+1)+6/24,  /*初次执行时间*/
    INTERVAL => 'TRUNC(SYSDATE+1)+6/24');  /*执行周期*/
    COMMIT;
END;

 

 

 

 variable jobno number;
 begin
   dbms_job.submit(:jobno, 'pro_test;',
   sysdate,'sysdate + 1/24/12');    ===》这里要写sysdate +具体的执行频率 不然就是(ORA-00932: 不一致的数据类型: 要求 DATE 得到的却是 NUMBER)
   commit;
   end;
    /

最后一步 run 一下

begin 
   dbms_job.run(:job);
    end;
    /

原创粉丝点击