1. 程式人生 > >如何修改序列(Sequence)的初始值(START WITH)

如何修改序列(Sequence)的初始值(START WITH)

Oracle 序列(Sequence)主要用於生成流水號,Oracle EBS系統中是經常用到的。但是,有時需要修改序列初始值(START WITH)時,好多人憑感覺認為:Alter Sequence SequenceName Start With N。事實上,在Oracle Db中,修改序列沒有這樣的語法。沒有這樣的語法情況怎麼辦,有二種方法可以完成

        1.先刪除序列,然後重新建立。不過這不是當前要講的重點。這個方法比較方便。

        2.通過Increment By來實現修改初始值。

            例如:若序列名稱是SeqTest2010_S,初始值是13,而現在要設定初始值為1020,Increment By值為:1007(1020-13)

            2.1 執行:Alter Sequence SeqTest2010_S Increment By 1007;

            2.2 執行:Select SeqTest2010_S.NextVal From Dual;

            2.3 執行:Alter Sequence SeqTest2010_S Increment By 1;

            修改完成。簡單吧

declare
  LastValue integer;
begin
  loop
    select SEQ_NS_GROUP.currval into LastValue from dual;
    exit when LastValue < 2;
    select SEQ_NS_GROUP.nextval into LastValue from dual;
  end loop;
end;

select * from user_objects ubs where ubs.OBJECT_TYPE='SEQUENCE';