next_date => to_date(???这句是什么意思
下次执行job的时间,  interval => 'sysdate+22/24');???这句是什么意思
执行job的频率,22/24是22小时

解决方案 »

  1.   

    begin
       sys.dbms_job.submit(job => :job,
                           what => 'xiaoguo_upcyl;',
                           next_date => to_date('20-03-2014 12:05:18', 'dd-mm-yyyy hh24:mi:ss'),
                           interval =>TRUNC(sysdate) + 1 +22 / (24));
       commit;
     end;
    next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;
    interval参数何时这个工作将被重执行
      

  2.   

    另外,JOB在运行结束之后才会更新next_date,但是计算的方法是JOB刚开始的时间加上interval设定的间隔。。
      

  3.   

    begin
       sys.dbms_job.submit(job => :job,
                           what => 'xiaoguo_upcyl;',
                           next_date => to_date('20-03-2014 12:05:18', 'dd-mm-yyyy hh24:mi:ss'),
                           interval =>TRUNC(sysdate) + 1 +22 / (24));
       commit;
     end;
    next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;
    interval参数何时这个工作将被重执行
    你好  我的需求是,管理员手动开启一个数据库定时任务,这个任务的执行间隔,也就是interval是可变的,即管理员可随时改变任务的间隔。
    因此,我的方案是:
    1)  写一个存储过程,该过程写在数据库脚本里,mysql.sql 
    PROCEDURE  proc(Cycle in INTEGER)
    IS
            e_raise EXCEPTION;
        BEGIN
            IF p_kversionCycle = 0 THEN
                RAISE e_raise;
            END IF;
            DEL_DBINFO_PACKAGE.JOB_RESET_KCYCLE;
            DECLARE
         JOB1; 
     BEGIN
         DBMS_JOB.SUBMIT(JOB1, ' task;', SYSDATE, 'SYSDATE + Cycle  / (24*60)');
         COMMIT;
     END;
     EXCEPTION
            WHEN e_raise THEN
                RAISE_APPLICATION_ERROR(-20006,'p_kversionCycle Is 0!');
            WHEN OTHERS THEN
                RAISE;
        END procDRMkversionCycle;
    2) 执行mysql.sql创建数据库3)启动任务
    declare fuck number(10);
    begin
        fuck :=1;
        procDRMkversionCycle(fuck);
    end;
    /目前的问题:
    1、存储过程procDRMkversionCycle中的参数,在DBMS_JOB.SUBMIT中怎么写?
    2、启动任务的时候,怎么传参?谢谢!