Thursday, March 9, 2017

Procedure to reset a oracle sequence

-------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE reset_seq(
    p_seq_name IN VARCHAR2 )
IS
  l_val NUMBER;
BEGIN
  EXECUTE immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val;
  EXECUTE immediate 'alter sequence ' || p_seq_name || ' increment by -' || l_val || ' minvalue 0';
  EXECUTE immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val;
  EXECUTE immediate 'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
END;
/
---------------------------------------------------------------------
DECLARE
  P_SEQ_NAME VARCHAR2(200);
BEGIN
  P_SEQ_NAME := 'W_DUMMY_D_SEQ';

  RESET_SEQ(
    P_SEQ_NAME => P_SEQ_NAME
  );
--rollback; 
END;\

Link:- 
http://stackoverflow.com/questions/51470/how-do-i-reset-a-sequence-in-oracle

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1119633817597

No comments: