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


    1. --序列增加区分
    2. --删除未使用序列表
    3. DECLARE V_CNT INT;
    4. BEGIN
    5. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_DETAIL_ID';
    6. IF V_CNT=1 THEN
    7. BEGIN
    8. EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLECT_BIZ_DETAIL_ID';
    9. END;
    10. END IF;
    11. END;
    12. /
    13. ---------------------------------------------------------------
    14. --添加SEQ_INTELLECT_BIZ_ID_0
    15. DECLARE V_CNT INT;
    16. BEGIN
    17. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_ID_0';
    18. IF V_CNT=1 THEN
    19. BEGIN
    20. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    21. END;
    22. ELSE
    23. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    24. END IF;
    25. END;
    26. /
    27. --添加SEQ_INTELLECT_BIZ_ID_1
    28. DECLARE V_CNT INT;
    29. BEGIN
    30. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_ID_1';
    31. IF V_CNT=1 THEN
    32. BEGIN
    33. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    34. END;
    35. ELSE
    36. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    37. END IF;
    38. END;
    39. /
    40. --删除原有的SEQ_INTELLECT_BIZ_ID
    41. DECLARE
    42. V_CNT INT;
    43. V_NUM INT;
    44. sequence_name VARCHAR2(100);
    45. BEGIN
    46. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_BIZ_ID';
    47. IF V_CNT=1 THEN
    48. sequence_name := 'SEQ_INTELLECT_BIZ_ID';
    49. EXECUTE IMMEDIATE 'SELECT '||sequence_name||'.NEXTVAL FROM dual' INTO V_NUM;
    50. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
    51. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
    52. EXECUTE IMMEDIATE 'SELECT SEQ_INTELLECT_BIZ_ID_0.nextval FROM dual' INTO V_NUM;
    53. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_0 INCREMENT BY 1';
    54. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_INTELLECT_BIZ_ID_1 INCREMENT BY 1';
    55. EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLECT_BIZ_ID';
    56. END IF;
    57. END;
    58. /
    59. ---------------------------------------------------------------
    60. DECLARE V_CNT INT;
    61. BEGIN
    62. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_PRODUCER_LOG_ID_0';
    63. IF V_CNT=1 THEN
    64. BEGIN
    65. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    66. END;
    67. ELSE
    68. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    69. END IF;
    70. END;
    71. /
    72. DECLARE V_CNT INT;
    73. BEGIN
    74. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_PRODUCER_LOG_ID_1';
    75. IF V_CNT=1 THEN
    76. BEGIN
    77. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    78. END;
    79. ELSE
    80. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    81. END IF;
    82. END;
    83. /
    84. --删除原有的SEQ_INTELLECT_PRODUCER_LOG_ID
    85. DECLARE
    86. V_CNT INT;
    87. V_NUM INT;
    88. sequence_name VARCHAR2(100);
    89. BEGIN
    90. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLECT_PRODUCER_LOG_ID';
    91. IF V_CNT=1 THEN
    92. sequence_name := 'SEQ_INTELLECT_PRODUCER_LOG_ID';
    93. EXECUTE IMMEDIATE 'SELECT '||sequence_name||'.NEXTVAL FROM dual' INTO V_NUM;
    94. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
    95. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
    96. EXECUTE IMMEDIATE 'SELECT SEQ_PRODUCER_LOG_ID_0.nextval FROM dual' INTO V_NUM;
    97. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_0 INCREMENT BY 1';
    98. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_PRODUCER_LOG_ID_1 INCREMENT BY 1';
    99. EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLECT_PRODUCER_LOG_ID';
    100. END IF;
    101. END;
    102. /
    103. --------------------------------------------------------------------
    104. DECLARE V_CNT INT;
    105. BEGIN
    106. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_BIZ_LOG_DETAIL_ID_0';
    107. IF V_CNT=1 THEN
    108. BEGIN
    109. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    110. END;
    111. ELSE
    112. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    113. END IF;
    114. END;
    115. /
    116. DECLARE V_CNT INT;
    117. BEGIN
    118. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_BIZ_LOG_DETAIL_ID_1';
    119. IF V_CNT=1 THEN
    120. BEGIN
    121. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    122. END;
    123. ELSE
    124. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 999999999999999999 NOCYCLE CACHE 20 NOORDER';
    125. END IF;
    126. END;
    127. /
    128. --删除原有的SEQ_INTELLET_BIZ_LOG_DETAIL_ID
    129. DECLARE
    130. V_CNT INT;
    131. V_NUM INT;
    132. sequence_name VARCHAR2(100);
    133. BEGIN
    134. SELECT COUNT(*) INTO V_CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_INTELLET_BIZ_LOG_DETAIL_ID';
    135. IF V_CNT=1 THEN
    136. sequence_name := 'SEQ_INTELLET_BIZ_LOG_DETAIL_ID';
    137. EXECUTE IMMEDIATE 'SELECT '||sequence_name||'.NEXTVAL FROM dual' INTO V_NUM;
    138. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
    139. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY ' || V_NUM || ' MINVALUE 0';
    140. EXECUTE IMMEDIATE 'SELECT SEQ_BIZ_LOG_DETAIL_ID_0.nextval FROM dual' INTO V_NUM;
    141. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_0 INCREMENT BY 1';
    142. EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_BIZ_LOG_DETAIL_ID_1 INCREMENT BY 1';
    143. EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_INTELLET_BIZ_LOG_DETAIL_ID';
    144. END IF;
    145. END;
    146. /
    147. EXIT;

  • 相关阅读:
    【动态规划】123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV
    PCL点云库可视化常用函数与经验总结
    这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!
    Python对象序列化
    路由是什么
    greenplum数据库-锁
    手写ButterKnife
    练习1-5:窗口函数,关联查询,子查询,分组聚合查询
    数字化时代,VR全景如何助力商企抢占市场份额?
    Spring注解驱动之@Autowired、@Qualifier、@Primary
  • 原文地址:https://blog.csdn.net/xiaobangsky/article/details/133825749