Oracle将自增sequence重置为初始值1时,若是删除再重建,那么依赖它的函数和存储过程将失效,需要重新编译。

这里利用相反的过程,利用负值步长参数,将递增值改为(sequence.NEXTVAL-1),然后再改回来。

 假设需要修改的序列名:seq_name

1、select seq_name.nextval from dual; //假设得到结果5656

2、alter sequence seq_name increment by -5655; //注意是-(n-1)

3、select seq_name.nextval from dual;//再查一遍,走一下,重置为1了

4、alter sequence seq_name increment by 1;//还原

以下是存储过程,传入序列名称: 

CREATE OR REPLACE PROCEDURE SEQ_RESET(V_SEQNAME VARCHAR2) AS
N NUMBER(10);
TSQL VARCHAR2(100);
BEGIN
EXECUTE IMMEDIATE 'select ' || V_SEQNAME || '.nextval from dual'
INTO N;
N := - (N - 1);
TSQL := 'alter sequence ' || V_SEQNAME || ' increment by ' || N;
EXECUTE IMMEDIATE TSQL;
EXECUTE IMMEDIATE 'select ' || V_SEQNAME || '.nextval from dual'
INTO N;
TSQL := 'alter sequence ' || V_SEQNAME || ' increment by 1';
EXECUTE IMMEDIATE TSQL;
END SEQ_RESET;

最新文章

  1. ASP.NET MVC——URL路由
  2. MySQL生成模型
  3. silverLight--绑定数据dataGrid
  4. 命令行中mysql乱码问题
  5. PHP、Java对称加密中的AES加密方法
  6. 修改dll版本号处理未能加载“******”,或找不到动态链接库依赖的项
  7. LIS(nlogn) POJ 3903 Stock Exchange
  8. 使用ProxychainsMac下安装及配置
  9. the error code is 2203
  10. 给label绘制下划线
  11. CTG
  12. scribe、chukwa、kafka、flume日志系统对比 -摘自网络
  13. 荷兰国旗,三类数字分离 nyoj
  14. 关于C++中Object所占内存空间探索1
  15. 大整数相乘问题总结以及Java实现
  16. Python之 Virtualenv简明教程
  17. 深度学习框架比较TensorFlow、Theano、Caffe、SciKit-learn、Keras
  18. Makefile入门
  19. linux学习笔记-解决google-chrome打开后弹出输入密码以解锁您的登录密钥环的提示
  20. 断开所有的SMB连接的批处理

热门文章

  1. 安装ubuntu配置ssh
  2. CCAction详解
  3. 用 gdb 调试 GCC 程序【转】
  4. bootstrapValidator 版本差异问题导致的submitHandler失效问题
  5. JavaScript 开发者的 10 款必备工具
  6. 牛客nowcoder Noip提高组第四场
  7. 值得收藏:一份非常完整的MySQL规范
  8. 【OpenJudge3531】【背包DP】【膜法交配律】判断整除
  9. "library not found for - "解决办法
  10. IOS调用WCF提供的服务方法,但是方法的参数是WCF那边自定义的对象,这样有办法调用么,如果可以IOS应该怎么传参呢?请问有了解的么,