有个疑问帮忙解决一下,我用 job 来定时执行存储过程,几天后我修改了一下存储过程,job 为什么还在执行 没有修改前的存储过程,job 我drop 重新建还是一样,。。

解决方案 »

  1.   

    重建后的JOB,服务器有没有重启过!
      

  2.   

    这个是不存在的。
    因为你只要一修改存储过程。那么Job会自动取最新的存储过程。不可能还是取以前的旧存储过程,你看一下你的Job是不是Job里面把处理写死了。
      

  3.   

    begin
      sys.dbms_job.submit(job => :job,
                          what => 'sxf_iom_bf_prod;',
                          next_date => to_date('22-11-2011 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'trunc(SYSDATE+1)+1/24');
      commit;
    end;
    /
      

  4.   

    单独运行存储和 job 执行的结果不一样,job执行的是修改前的存储
      

  5.   

    能否将 sxf_iom_bf_prod 该名为  sxf_iom_bf_prod1,重新编译后,再放在JOB中再试一下呢?what => 'sxf_iom_bf_prod1;',主要是要监测下JOB在规定的时间内执行了有没有?再次才是执行的结果。如果系统中有多个JOB运行时,由于交互性和数据的一致性没有统筹考虑,可能存在相互更改的情况,需详细分析查明。
      

  6.   

    create or replace procedure sxf_iom_bf_prod is
           v_acct_date varchar2(12);
           sqlerrm1 varchar2(500);
    begin
         v_acct_date:=to_char(sysdate,'yyyymmdd');
         sxf_iom_bf_date_prod(v_acct_date);
      exception when others then 
      sqlerrm1:=sqlerrm;
       execute immediate 'insert into sxf_iom_bf_log values (0,sysdate,'''||sqlerrm1||''')';
        commit; 
        dbms_output.put_line('这里错'||sqlerrm1);    
    end sxf_iom_bf_prod;
    不知道会不会是存储过程嵌套的原因,我改的是   sxf_iom_bf_date_prod(v_acct_date);这个存储
      

  7.   

    最好理顺变量间关系,把sxf_iom_bf_prod 和 sxf_iom_bf_date_prod 两个存贮过程合并成一个存贮过程。不知道两个存贮过程的嵌套执行结果是否正确?
      

  8.   

    我在用job 执行存储过程的时候也遇到了问题~~~  <a href="http://topic.csdn.net/u/20111121/16/c70f4133-5241-475c-9e87-6f1e979f8017.html?seed=1169792439&r=76592584#r_76592584">job 执行存储过程</a>  专家们帮看看呗~~
      

  9.   

    http://topic.csdn.net/u/20111121/16/c70f4133-5241-475c-9e87-6f1e979f8017.html?seed=1169792439&r=76592584#r_76592584