您的位置:首页 > 数据库 > Oracle

重置Oracle SEQUENCE值 的存储过程

2016-06-14 16:48 465 查看
CREATE OR REPLACE PROCEDURE SEQ_RESET_ID AS

  N     NUMBER(10);

  T_SQL VARCHAR2(100);

BEGIN

  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PORT_ID MINVALUE 0';

  EXECUTE IMMEDIATE 'SELECT SEQ_PORT_ID.NEXTVAL FROM DUAL' INTO N;

  N     := - (n - 0);

  T_SQL := 'ALTER SEQUENCE SEQ_PORT_ID INCREMENT BY ' || N;

  EXECUTE IMMEDIATE T_SQL;

  EXECUTE IMMEDIATE 'SELECT SEQ_PORT_ID.NEXTVAL FROM DUAL' INTO N;

  T_SQL := 'ALTER SEQUENCE SEQ_PORT_ID INCREMENT BY 1';

  EXECUTE IMMEDIATE T_SQL;

END SEQ_RESET_ID;

SEQ_PORT_ID为SEQUENCE的名称

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息