IT/ORACLE

ORACLE Squence 초기화 시키는 프로시저

주현태 2022. 7. 14. 23:05

시퀀스를 0으로 초기화할 방법을 찾고있었느데, 아래의 방법밖에 없는듯 하다..

CREATE OR REPLACE PROCEDURE pr_reset_seq(seq_name IN VARCHAR2 )
IS
    seq_val NUMBER;
BEGIN
    EXECUTE IMMEDIATE 'select [시퀀스명].nextval from dual' INTO seq_val;
    EXECUTE IMMEDIATE 'alter sequence [시퀀스명] increment by -' || seq_val || ' minvalue 0';
    EXECUTE IMMEDIATE 'select [시퀀스명].nextval from dual' INTO seq_val;
    EXECUTE IMMEDIATE 'alter sequence [시퀀스명] increment by 1 minvalue 0';
END pr_reset_seq;