有个问题。怎么实现让自增为1的序列,增长任意大小。例如序列seq_temp,自增为1,现在的值为100,
我传一个参数m(任意大小),让seq_temp.nextval 变成m+100怎样实现呢?

解决方案 »

  1.   

    alter sequence seq_temp increment by m nocache;
    select seq_temp.nextval from dual;
    alter sequence seq_temp increment by 1 cache 20;
      

  2.   

    select seq_temp.nextval from dual;
    alter sequence seq_temp increment by 1 cache 20;
      

  3.   

    经验谢谢前辈,cache、nocache又让我这个小菜鸟学到新东西了
      

  4.   


    --你就不会建个存储过程
    create or replace procedure alter_seq(
      i_m number
    )as
      v_currentvalue number;
    begin
      select seq_temp.nextval -1 
        into v_currentvalue
        from dual;
      
      execute immediate 'drop sequence seq_temp';
      execute immediate 'create sequence seq_temp start with '||v_currentvalue+i_m;end;
      

  5.   

    建个循环,执行m遍
    select seq_temp.nextval from dual;
    语句,不知道这样能满足你的要求不?