有没有其他的程序用到了这个sequence,导致它的跳跃?
你的sequence的最大值是多少?运行两年了,是不是又从头循环了?!
看看它的currval值!

解决方案 »

  1.   

    最大值是9999999,当前值是4394538,没有写其它的程序用这个sequence
      

  2.   

    这可挺奇怪?!
    你的数据库版本多少?我以前听说有关于oracle的sequence
    有跳号的bug。
      

  3.   

    SQLPLUS运行select seq_name.nextval  from dual;看下得到的结果是多少
    select * from  user_sequences where SEQUENCE_NAME='xxx';查看这个序列的信息,看有什么异常
      

  4.   

    如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。 
      

  5.   

    楼上的,现在系统是7*24小时运行的,我的sequence已经用了cache,我现在改对系统会有影响吗?
      

  6.   

    你建sequence肯定用了cache!
    你原来空间不够,可能导致不正常重起,使其跳号!
    现在你去掉cache试试!
      

  7.   

    我也是这么想,可是不敢做!我的cache值是20,谢谢!