问题在于过程:
确保select ia1,ia2 into a, b from test2;  --没有记录,或只有一条记录另外:
declare
v_test NUMBER;
begin
dbms_job.submit(v_test,'test;',sysdate,'add_months(trunc(sysdate,''mm''),1)');
commit;
end;
/

解决方案 »

  1.   

    如果要使JOB运行,需要在INIT.ORA中确定如下参数:
    time_static=true
    time_internal=60  -- 需要<=JOB的间隔时间(单位为秒)
    参数的名字不知有没拼写错误,一般的现有的ORA文件中是有的,只是值需要改下
      

  2.   

    begin
      dbms_job.run(1);
    end;就OK了。
      

  3.   

    删除job:dbms_job.remove(jobno);
    修改job:dbms_job.what(jobno,what);
    修改下次执行时间:dbms_job.next_date(job,next_date);
    修改间隔时间:dbms_job.interval(job,interval);
    停止job:dbms.broken(job,broken,nextdate);
    启动job:dbms_job.run(jobno);
      

  4.   

    忘了说你的过程这样不是也可?create or replace procedure test is
    begin
      update test2 set ia2=to_char(to_number(ia2)+1);
      commit;
    end;
      

  5.   

    pengdali(大力 V3.0)兄,begin
      dbms_job.run(1);
    end;
    这个只是人为地调用了一次,不是系统自动地调用的吧??
      

  6.   

    'sysdate + (60/(24*60*60))'
    ->
    'trunc(sysdate+32,'mm')'
      

  7.   


    dbms_job.run(1);
    这不是系统自动调用,但是它也同样计算并修改了下次执行的时间
      

  8.   

    dbms_job.run(1);
    呵呵。重起,你可以试试呀。
    它每个月的1号运行可以'trunc(sysdate+32,'mm')'如:select to_char(trunc(sysdate+32,'mm'),'yyyy-mm-dd hh:mi:ss') from dual;
      

  9.   

    'sysdate + (60/(24*60*60))'
    ->
    'trunc(sysdate+32,'mm')'
    sorry,这样好像有单引号的问题
    这样:
    'trunc(sysdate+32,''mm'')'
      

  10.   

    exec dbms_job.interval(21,'next_day(add_months(trunc(sysdate,''q''),1),1)');
    请问这句话是什么意思??
      

  11.   

    修改间隔时间:dbms_job.interval(job,interval);select sysdate,next_day(sysdate,1) 下一个星期日,add_months(sysdate,1) 加一月,trunc(sysdate,'q') 裁减到季度 from dual;