oracle重置序列从0开始递增1
oracle序列创建以后,如果想重置序列从 0 开始,逐渐递增1,可以采用如下存储过程:
create or replace procedure reset_seq( p_seq_name in varchar2 ) is l_val number; begin execute immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val; execute immediate 'alter sequence ' || p_seq_name || ' increment by -' || l_val || ' minvalue 0'; execute immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val; execute immediate 'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0'; end;
存储过程创建以后,调用该存储过程,参数是要重置的序列名称:
call reset_seq(‘test_seq’);
使用下面的SQL语句查询需要重置的序列:
SELECT a.sequence_name 序列名称, a.min_value 序列最小值, to_char(to_number( a.max_value)) 序列最大值, a.last_number 序列当前值, CASE a.last_number WHEN 1 THEN '--不需要重置;' ELSE 'CALL seq_reset(''' || a.sequence_name || ''');' END 重置序列脚本, 'DROP SEQUENCE ' || a.sequence_name 删除序列脚本, 'RENAME ' || a.sequence_name || ' TO {newname}' 重命名脚本 FROM USER_SEQUENCES a WHERE a.last_number<>1 ORDER BY a.sequence_name ASC;
到此这篇关于oracle重置序列的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
oracle sequence语句重置方介绍
在开发过程中,可能会用到oracle sequence语句,本文以oracle sequence语句如何重置进行介绍,需要的朋友可以参考下Oracle重置sequence语句1 Sql代码 复制代码 代码如下: DECLARE n NUMBER(10 ); tsql VARCHAR2(100 ); p_seqName varchar2(20 ); BEGIN p_seqName := 'SEQ_RUN_ID'; EXECUTE IMMEDIATE 'SELECT ' || p_seqName |
-
Oracle数据库密码重置、导入导出库命令示例应用
重置办法如下:打开CMD命令提示符,然后输入下面命令进行重置: 输入sqlplus /nolog,回车 SQL> conn /as sysdba 已连接: SQL>alter user system identified by "123456"; ---(123456就是重置的密码了) SQL>alter user sys identified by "123456"; 下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简
-
oracle 重置序列从指定数字开始的方法详解
重置oracle序列从指定数字开始 复制代码 代码如下: declare n number(10); v_startnum number(10):=10000001;--从多少开始 v_step number(10):=1;--步进 tsql varchar2(200); v_seqname varchar2(200):='MIP_JF_SEQUENCE';--序列名 begin execute immediate 'select '||v_seqname||'.nextval from dua
-
oracle 重置sys密码的方法介绍
如何重置oracle 10g SYS 的密码 安装完oracle 10g后,竟然将安装时设置的系统密码忘记.在同事的帮助下通过一下方法解决. 1.oracle的密码文件存在于:oracle_home/database/pwd<sid>.ora 2.使用orapwd 重置SYS密码 C:oracleproduct10.2.0db_1database>orapwd Usage: orapwd file=<fname> password=<password> entri
-
Windows下编写批处理脚本来启动和重置Oracle数据库
cmd启动Oracle数据库 新建一个bat文件,复制内容进去,双击即可启动. @echo off net start OracleXETNSListener 2>nul net start OracleServiceXE 2>nul @oradim -startup -sid XE -starttype inst > nul 2>&1 Oracle重置数据库命令 新建bat文件,复制以下内容,然后执行. @echo off REM REM The script assum
-
Oracle 数据库忘记sys与system管理员密码重置操作方法
首先打开cmd 执行 orapwd file=C:\app\PWDorcl.ora password=orclorcl C:\app\PWDorcl.ora是你要存放的路径文件 Password=orclorcl是你要改的密码 然后回车,在该路径下就会生成一个文件.把这文件替换你本机oracl的密码文件.Sys和system密码就会改成你要重新设置的密码 例如我的本机路径是C:\app\product\11.2.0\dbhome_1\database 以上所述是小编给大家介绍的Oracle 数据
-
oracle重置序列从0开始递增1
oracle序列创建以后,如果想重置序列从 0 开始,逐渐递增1,可以采用如下存储过程: create or replace procedure reset_seq( p_seq_name in varchar2 ) is l_val number; begin execute immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val; execute immediate 'alter sequence ' || p
-
C++计算整数序列的最长递增子序列的长度操作
给定一个整数序列,计算其中的最长递增子序列的长度,这是一个典型的动态规划的算法. 比如8个整数的序列 186 186 150 200 160 130 197 200,最长递增子序列是 150 160 197 200, 长度为4. 想要解决此问题,可以把这个大问题分解为小问题,依次考虑每个数,计算出包含该数数和该数之前的所有数的最长递增子序列的长度,计算出的长度值作为该数的对应值记录下来,最后可以得到这8个数对应的长度值序列,也是8个数,找到这8个数中的最大值就是所有书的最长递增子序列的长度. 或
-
postgresql重置序列起始值的操作
我就废话不多说了,大家还是直接看代码吧~ -- 序列重置到1000 alter sequence sequence_name restart with 1000 -- 验证 SELECT nextval('sequence_name'); 补充:postgresql重置序列和自增主键 1. 问题背景 数据表中插入了几条测试数据,后又手动删除,导致后面插入数据的时候报主键冲突: ERROR: duplicate key value violates unique constraint "table
-
一键清空(重置)本地MySQL8.0密码脚本
之前我开发了一个爆破MySQL简单密码的Python脚本,但是对于MySQL就安装在自己机器上这种情况根本没有必要,只要我们拥有关闭和启动MySQL服务进程的权限,我们就可以直接重设密码. 具体原理: 结束MySQL服务进程 以跳过权限表检查的方式启动MySQL服务进程 修改存储用户密码的表,指定root本地用户的密码为空 结束MySQL服务进程 以正常方式启动MySQL服务进程 注意:命令行方式操作服务进程需要管理员权限 最终编写如下cmd脚本(保存文件名后缀为.cmd): TASKKILL
-
go语言题解LeetCode674最长连续递增序列
目录 题目描述 思路分析 AC 代码 题目描述 674. 最长连续递增序列 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度. 连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列. 示例 1: 输入:nums = [1,3,5
-
MySQL实现类似Oracle序列的方案
MySQL实现类似Oracle的序列 Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的: 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长.开始索引.是否循环等:若需要迁移数据库,则对于主键这块,也是个头大的问题. 本文记录了一个模拟Oracle序列的方案,重点是想法,代码其次. Oracle序列的使用,无非是使用.nextval和.currval伪列,基本想法是: 1.MySQL中新建表,用于存储序
-
Oracle中的序列SEQUENCE详解
一.序列介绍 Oracle的序列是一种数据库对象,主要作用是用来产生唯一值.序列被创建以后可以通过数据字典找到序列对象,因此序列可以被多个对象共享. 二.创建序列 序列使用CREATE SEQUENCE语法进行创建: CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE
随机推荐
- AngularJS实现表单验证
- linux 中的atq命令
- Spring中属性注入详解
- document.execCommand()的用法小结
- JavaScript中的Truthy和Falsy介绍
- python3实现全角和半角字符转换的方法示例
- Python中表示字符串的三种方法
- 结合FSO操作和Aspjpeg组件写的Class
- nodejs中全局变量的实例解析
- 一个简单的linux命令 mkdir
- php AJAX POST的使用实例代码
- jQuery Animation实现CSS3动画示例介绍
- Nginx日志按日期切割详解(按天切割)
- mysql 复制记录实现代码
- jquery.idTabs 选项卡使用示例代码
- Vue.js devtool插件安装后无法使用的解决办法
- 原生JS进行前后端同构
- Java基于状态模式实现的文档编辑模式切换功能实例
- docker部署Asp.net core应用的完整步骤
- 易语言列表框使用分享