大家好,我现在想oracle在每天夜里12点的时候执行一个自定义的函数,请问这个job该怎么写呢?以前没写过,求高手帮忙解决一下啊

解决方案 »

  1.   

    begin
      sys.dbms_job.submit(job => :job,
                          what => '执行存储过程;',
                          next_date => to_date('31-12-2009', 'dd-mm-yyyy'),
                          interval => 'trunc(SYSDATE)+1');
      commit;
    end;
    /
      

  2.   

    这个是每天早上6点执行的,可以参考下
    DECLARE
      X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT
      ( job       => X 
       ,what      => 'ANALYZEDB;'
       ,next_date => to_date('26-08-2009 06:00:00','dd/mm/yyyy hh24:mi:ss')
       ,interval  => 'trunc(sysdate + 1) + 6/24'
       ,no_parse  => FALSE
      );
      SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
    COMMIT;
    END;
    /
    Oracle dbms_job package 用法小结 
    http://blog.csdn.net/tianlesoftware/archive/2009/10/21/4703133.aspx------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    Q Q 群:62697716 
      

  3.   

    LZ可以考虑写shell  然后corntab定时执行
      

  4.   

    --参考下:
    variable job number;
    begin
      sys.dbms_job.submit(job => :job,
                          what => 'declare
                          iResult int;
                          vErrLog varchar2(100);
                          begin
                          CDM_PROCNAME(iResult,vErrLog);
                          end;',
                          next_date => to_date('31-12-2009', 'dd-mm-yyyy'),
                          interval => 'to_date(to_char(sysdate, ''yyyy-mm-dd''), ''yyyy-mm-dd HH24:MI:SS'')+1');
      commit;
    end;
    /
      

  5.   

     我自己写的函数是不是就是写在what 后面的那个参数啊?
      

  6.   

    tianlesoftware 是好人,好好看看他的BLOG 吧!