declare
n number(10);
tsql varchar2(100);
begin
select my_seg.nextval into n from dual;//my_seg為序列名
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.   

    recreate the sequence ,what's the problem?
      

  2.   

    sequence 建好了之后,是不能相减的,只能递增。
    想要它恢复只能删除之后再重新建一个。
      

  3.   

    tinger(影虎) :你的说发也不对,如果已经建好了,当然不能递减,但ORACLE支持递减序列,所以可以创建一个递减的序列。
     当然,序列创建好后,也可以修改其属性,设置其当前值、递增(递减)的步长等。贴主可以按照IronPromises(铁诺)的办法去做。
      

  4.   

    IronPromises(铁诺) 的方法确实可以。