如何修改序列(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';