现在的位置: 首页 > 综合 > 正文

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

2018年02月04日 ⁄ 综合 ⁄ 共 744字 ⁄ 字号 评论关闭

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'; 

抱歉!评论已关闭.