How do I automatically reset a sequence's value to 0 every year in Oracle 10g?

后端 未结 7 896
既然无缘
既然无缘 2021-01-02 22:09

As in the question, how do I automatically reset an Oracle sequence\'s value back to 0 every year in Oracle 10g?

I\'m using the sequence to generate an identifier i

7条回答
  •  悲&欢浪女
    2021-01-02 22:43

    create or replace procedure Reset_Sequence(pSeqName in varchar2) is
      vLastValue number;
    begin
      execute immediate 'select ' || pSeqName || '.nextval from dual'
        INTO vLastValue;
    
      execute immediate 'alter sequence ' || pSeqName || ' increment by -' ||
                        vLastValue || ' minvalue 0';
    
      execute immediate 'select ' || pSeqName || '.nextval from dual'
        INTO vLastValue;
    
      execute immediate 'alter sequence ' || pSeqName ||
                        ' increment by 1 minvalue 0';
    
    end;
    

提交回复
热议问题