ORACLE XXX序列 goes below MINVALUE 无法实例化的处理办法

--序列增加区分
--删除未使用序列表
DECLARE V_CNT INT;
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_DETAIL_ID';
  IF V_CNT=1 THEN 
    BEGIN
	  EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLECT_BIZ_DETAIL_ID';
    END;
  END IF;
END;
/
---------------------------------------------------------------
 
--添加SEQ_INTELLECT_BIZ_ID_0
DECLARE V_CNT INT;
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_ID_0';
  IF V_CNT=1 THEN 
    BEGIN
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    END;
  ELSE 
	EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
  END IF;
END;
/

--添加SEQ_INTELLECT_BIZ_ID_1
DECLARE V_CNT INT;
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_ID_1';
  IF V_CNT=1 THEN 
    BEGIN
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    END;
  ELSE 
	EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
  END IF;  
END;
/

--删除原有的SEQ_INTELLECT_BIZ_ID
DECLARE 
	V_CNT INT;
	V_NUM INT; 
	sequence_name VARCHAR2(100);
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_ID';
  IF V_CNT=1 THEN 
  	  sequence_name := 'SEQ_INTELLECT_BIZ_ID';
	  EXECUTE IMMEDIATE 'SELECT '||sequence_name||'.NEXTVAL FROM dual' INTO V_NUM;
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
	  EXECUTE IMMEDIATE 'SELECT SEQ_INTELLECT_BIZ_ID_0.nextval FROM dual' INTO V_NUM;
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY 1';
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY 1';
	  EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLECT_BIZ_ID';
  END IF;
END;
/
---------------------------------------------------------------

DECLARE V_CNT INT;
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_PRODUCER_LOG_ID_0';
  IF V_CNT=1 THEN 
    BEGIN
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    END;
  ELSE 
	EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
  END IF;  
END;
/

DECLARE V_CNT INT;
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_PRODUCER_LOG_ID_1';
  IF V_CNT=1 THEN 
    BEGIN
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    END;
  ELSE 
	EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
  END IF;  
END;
/

--删除原有的SEQ_INTELLECT_PRODUCER_LOG_ID
DECLARE 
	V_CNT INT;
	V_NUM INT; 
	sequence_name VARCHAR2(100);
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_PRODUCER_LOG_ID';
  IF V_CNT=1 THEN 
  	  sequence_name := 'SEQ_INTELLECT_PRODUCER_LOG_ID';
	  EXECUTE IMMEDIATE 'SELECT '||sequence_name||'.NEXTVAL FROM dual' INTO V_NUM;
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
	  EXECUTE IMMEDIATE 'SELECT SEQ_PRODUCER_LOG_ID_0.nextval FROM dual' INTO V_NUM;
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY 1';
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY 1';
	  EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLECT_PRODUCER_LOG_ID';
  END IF;
END;
/

--------------------------------------------------------------------

DECLARE V_CNT INT;
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_BIZ_LOG_DETAIL_ID_0';
  IF V_CNT=1 THEN 
    BEGIN
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    END;
  ELSE 
	EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
  END IF;  
END;
/

DECLARE V_CNT INT;
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_BIZ_LOG_DETAIL_ID_1';
  IF V_CNT=1 THEN 
    BEGIN
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    END;
  ELSE 
	EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
  END IF;  
END;
/

--删除原有的SEQ_INTELLET_BIZ_LOG_DETAIL_ID
DECLARE 
	V_CNT INT;
	V_NUM INT; 
	sequence_name VARCHAR2(100);
BEGIN
  SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLET_BIZ_LOG_DETAIL_ID';
  IF V_CNT=1 THEN 
  	  sequence_name := 'SEQ_INTELLET_BIZ_LOG_DETAIL_ID';
	  EXECUTE IMMEDIATE 'SELECT '||sequence_name||'.NEXTVAL FROM dual' INTO V_NUM;
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
	  EXECUTE IMMEDIATE 'SELECT SEQ_BIZ_LOG_DETAIL_ID_0.nextval FROM dual' INTO V_NUM;
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY 1';
	  EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY 1';
	  EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLET_BIZ_LOG_DETAIL_ID';
  END IF;
END;
/

EXIT; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaobangsky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值