//重置sequence值
declare
n number(10);
tsql varchar2(100);
begin
select my_seg.nextval into n from dual;
n:=-(n-1);
tsql:='alter sequence my_seg increment by'|| n;
execute immediate tsql;
select my_seg.nextval into n from dual;
tsql:='alter sequence my_seg increment by 1';
execute immediate tsql;
end;
/

解决方案 »

  1.   

    drop sequence 序列名;
    create sequence 序列名;
    缺省就是从一开始
      

  2.   

    直接修改SEQUENCE 的START WITH 从1开始就可以了
      

  3.   

    建议采用gladness(gladness)的方法做,很方便
      

  4.   

    好像只能drop,其他方法都会出错
      

  5.   

    alter SEQUENCE eseq INCREMENT BY 当前最大值-1; 
    slect eseq.nextval from dual;
    alter SEQUENCE eseq INCREMENT BY 1;