重置ORACLE序列编号

declare
    n          number(10);
    v_startnum number(10)    := 1;--从多少开始
    v_step     number(10)    := 1;--步进
    tsql       varchar2(200);
    v_seqname  varchar2(200) := 'SEQ_G_YAF_EVENT';--序列名
begin
    execute immediate 'select ' || v_seqname || '.nextval from dual' into n;
    n := v_startnum - n - v_step;--从10000001开始
    tsql := 'alter sequence ' || v_seqname || ' increment by ' || n;
    execute immediate tsql;
    execute immediate 'select ' || v_seqname || '.nextval from dual' into n;
    tsql := 'alter sequence ' || v_seqname || ' increment by ' || v_step;
    execute immediate tsql;
end;
posted @ 2021-08-19 10:26  凉风青枼  阅读(224)  评论(0)    收藏  举报