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;

Oracle 重置序列的更多相关文章

  1. oracle 重置序列从指定数字开始的方法详解

    原文 oracle 重置序列从指定数字开始的方法详解 重置oracle序列从指定数字开始 declare n ); v_startnum ):;--从多少开始 v_step ):;--步进 tsql ...

  2. 【转】Oracle重置序列(不删除重建方式)

    Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译.不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequen ...

  3. Oracle重置序列

    oracle序列创建以后,如果想重置序列从 0 开始,逐渐递增1,可以采用如下存储过程: create or replace procedure reset_seq( p_seq_name in va ...

  4. Oracle重置序列(不删除重建方式)

    Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译. 不过还有种巧妙的方式,不用删除,利用步长参数,先查出seque ...

  5. Oracle 使用序列实现自增列 及重置序列

    序列是oracle用来生产一组等间隔的数值.序列是递增,而且连续的.oracle主键没有自增类型,所以一般使用序列产生的值作为某张表的主键,实现主键自增.序列的编号不是在插入记录的时候自动生成的,必须 ...

  6. MySQL实现类似Oracle的序列

    MySQL实现类似Oracle的序列 2013-10-22 10:33:35     我来说两句      作者:走过的足迹 收藏    我要投稿 MySQL实现类似Oracle的序列   Oracl ...

  7. Oracle的序列

    Oracle的序列 序列介绍 序列是Oracle提供的用于产生一系列唯一数字的数据库对象. 使用序列能够实现自己主动产生主键值.序列也能够在很多用户并发环境中使用.为所实用户生成不反复的顺序数字,并且 ...

  8. oracle导出序列的几种办法

    oracle导出序列的几种办法 注:本文来源于<oracle导出序列的几种办法> 方法一: select 'create sequence ' ||sequence_name|| ' mi ...

  9. Oracle中序列的操作以及使用前对序列的初始化

    Oracle中序列的操作以及使用前对序列的初始化   一 创建序列 create sequence myseq start with 1 increment by 1 nomaxvalue minva ...

随机推荐

  1. mysql创建用户后无法登陆

    创建用户后登陆失败的原因是存在匿名用户: root@controller:~# mysql -h localhost -uaa -ppassword ERROR 1045 (28000): Acces ...

  2. UVA 10985 Rings'n'Ropes

    最短路 参考了Staingger的博客 感觉DP的状态记录还是有毛病.可以DFS寻找结果也. #include <map> #include <set> #include &l ...

  3. c/c++相关面试准备笔记1

    在c++程序中调用被C编译器编译后的函数,为什么要加extern  “C”? C++语言支持函数重载,C语言不支持函数重载.函数被C++编译后在库中的名字与C语言的不同.C++提供了C连接交换指定符号 ...

  4. Appium+python自动化11-adb必知必会的几个指令【转载】

    前言 学android测试,adb是必学的,有几个常用的指令需要熟练掌握 一.检查设备 1.如何检查手机(或模拟器)是连上电脑的,在cmd输入: >adb devices

  5. python接口自动化8-参数化【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...

  6. AtCoder Grand Contest 012 B Splatter Painting (反向处理 + 记忆化)

    题目链接  agc012 Problem B 题意  给定一个$n$个点$m$条边的无向图,现在有$q$个操作.对距离$v$不超过$d$的所有点染色,颜色编号为$c$. 求每个点最后的颜色状态. 倒过 ...

  7. Django REST framework(官方说明文档翻译)(1快速开始 )

    http://www.django-rest-framework.org/tutorial/quickstart/ 第一部分:快速开始 我们将创建一个简单的api接口,用来给admin用户查看及编辑系 ...

  8. EL的函数与标签

    1 什么EL函数库 EL函数库是由第三方对EL的扩展,我们现在学习的EL函数库是由JSTL添加的.下面我们会学习JSTL标签库. EL函数库就是定义一些有返回值的静态方法.然后通过EL语言来调用它们! ...

  9. Python的支持工具[1] -> 可执行文件生成工具[0] -> pyinstaller

    pyinstaller pyinstaller安装方式: pip install pyinstaller 使用方法: cmd –> cd dictionary –> pyinstaller ...

  10. [POJ 2397] Spiderman

    Link: POJ 2397 传送门 Solution: 设$dp[i][j]$表示第$i$步走到$j$高度时经过的最高高度 分向上走和向下走两种方式转移即可 注意记录路径,最后输出时要逆序输出 (逆 ...