我想写一个JOB,从oracle数据库中每天凌晨执行一个sql提取数据,但是以前从来没有接触过JOB,请问该怎么样写呢?
谢谢大家了,我只是想有没有一个格式之类的东西可以看看?

解决方案 »

  1.   

    begin
      sys.dbms_job.submit(job => :job,
                          what => 'PUB_RELATE_DDEVICE_DNET;',
                          next_date => to_date('19-10-2007 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'TRUNC(SYSDATE+1)');
      commit;
    end;
    /
      

  2.   

    创建一个自定义过程
    SQL> create or replace procedure MYPROC as
      2  begin
      3  insert into TEST values(sysdate);
      4  end;
      5  /
    过程已创建。创建JOB
    SQL> variable job1 number;
    SQL> 
    SQL> begin
      2  dbms_job.submit(:job1,'MYPROC;',sysdate,'TRUNC(SYSDATE + 1) + (1*60)/(24*60)');  --每天凌晨一点执行;
      3  end;
      4  /
    PL/SQL 过程已成功完成。运行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 TEST;
    时间
    -------------------
    2001/01/07 23:51:21
    2001/01/07 23:52:22
    2001/01/07 23:53:24
    删除JOB
    SQL> begin
      2  dbms_job.remove(:job1);
      3  end;
      4  /
    PL/SQL 过程已成功完成。