# 시퀀스 네임을 받아 초기 값으로 설정하는 프로시저

CREATE OR REPLACE PROCEDURE RESET_SEQ(P_SEQ IN VARCHAR2)
IS 
L_VAL NUMBER;

BEGIN
    EXECUTE IMMEDIATE
    'SELECT '||P_SEQ||'.NEXTVAL FROM DUAL' INTO L_VAL;
    EXECUTE IMMEDIATE
    'ALTER SEQUENCE '||P_SEQ||' INCREMENT BY -'||L_VAL||' MINVALUE 0';
    
    EXECUTE IMMEDIATE
    'SELECT '||P_SEQ||'.NEXTVAL FROM DUAL' INTO L_VAL;
    EXECUTE IMMEDIATE
    'ALTER SEQUENCE '||P_SEQ||' INCREMENT BY 1 MINVALUE 0;
 END;
 /

※ 초기화 시 반드시 "MINVALUE 0" 로 설정해야 함.

+ Recent posts