情况如下:有一个动态表在某段时间内是不断更新数据的,从而它的记录数在不断的增长,但是在某一个时间它就不增长了,我自己做了一个job,早这个时间段内想一个小时执行一次判断总记录,要是不增长了就执行接下来的程序,若还是在增长就继续每个小时做判断,从而不执行接下来的程序,我如何写呢?请专家给予帮助!

解决方案 »

  1.   

    楼住的意思,我猜测:
    1.首先记录当前表中记录的条数,存储起来为i;
    2.然后过1小时后再记录当前表中记录的条数,存储起来为j;
    3.如果i==j,返回1;如果i<>j,那么跳出这个循环执行下面的程序如何过1个小时,可以用其他程序中的方法计算,如:javascript中有的
      

  2.   

    你的增长是什么意思?追加?假如只是追加的话,
    你只要用这次启动的时间的count,和现在启动时间的一个小时前的count做比较,就知道了呀。
    合计值一样的话,就是没有变化了。假如是包括追加,更新,删除的话,
    直接在这个表上面做一个触发器,记录下最后一次更新的时间,保存到一个其它的表里面,
    或者,在你的记录上面追加一个最后更新时间的字段,取最大值也可以。这样也可以来判断。看你的情况了。
      

  3.   

    刚才说的第一种方法,假如你有时间可以作为条件的话,只要执行2次sql就好了。不需要保存临时值。
      

  4.   

    create table tmp (c number);
    insert into tmp values(0);
    commit;
    job里写
    select c into n_c from tmp;
    select count(*) into n_new from source;
    if n_new<>n_c then
    callproc;
    end if;