补充:
上面的提交过程,我察看了uer_jobs表,发现表中的next_day字段(下次执行时间)为已经过去的时间,所以定时执行又怎么可以执行呢??
请高手帮助一下吧

解决方案 »

  1.   

    你的初始化参数job_queue_processes有没有改成大于1的数
      

  2.   

    需要先定义变量:variable v_job number; 
    begin 
    DBMS_JOB.SUBMIT(:v_job, 'age_tmp_pro;', sysdate, 'sysdate+1/24');
    commit; 
    end;
      

  3.   

    我手动运行dbms_job.run(??)后,在表uer_jobs中last_day和next_day两个字段是一样的(日期也是已经过去的时间),这不对吧?
      

  4.   

    我有种感觉oracle的不足有二:
    1、对大文本的操作,oracle真的不如sql server,sybase等数据库,
    2、就是这个定时运行了,至少不能说简单易用。
    个人见解
      

  5.   

    用这个试一下,看执不执行,看一下next_day
    DBMS_JOB.SUBMIT(v_job,  'age_tmp_pro;',  sysdate,  'sysdate+1/(24*60)');  
      

  6.   

    每天执行一次sysdate + 1 ;init中:
    job_queue_processes = 4    大于0
    job_queue_interval = 10    单位是秒
    重新启动数据库了吧
      

  7.   

    我是这样用的,绝对没问题。VARIABLE v_JobNum NUMBER
    BEGIN
    DBMS_JOB.SUBMIT(:v_JobNum, 'age_tmp_pro;', TRUNC(SYSDATE) + 25/24, 'TRUNC(SYSDATE) + 25/24');
    END;
    COMMIT; // 一定要提交一下才行
      

  8.   

    我试过,没有commit是不运行的。结束时,一定要commit一下。另外,你可能需要指定下次在几点钟运行,可以把sysdate+1/24这一段中的sysdate以另一个时间变量取代,假定这样:declare vardate date;
    vardate :=to_date('20021219 03:00:00','yyyymmdd hh24:mi:ss');
    然后以vardate+1/24这样指定下次是凌晨三点执行,是可以的。
    不然,那么你凌晨三点去执行这个提交任务的过程。