Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译. 不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的这个值(反过来走),然后再改回来. 假设需要修改的序列名:seq_name .select seq_name.nextval from dual; //假设得到结果5656 . ; ) . select seq_name.nextval from dual…
原文 oracle 重置序列从指定数字开始的方法详解 重置oracle序列从指定数字开始 declare n ); v_startnum ):;--从多少开始 v_step ):;--步进 tsql ); v_seqname ):='MIP_JF_SEQUENCE';--序列名 begin execute immediate 'select '||v_seqname||'.nextval from dual' into n; n:=v_startnum-n-v_step;--从10000001开…
Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译.不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的这个值(反过来走),然后再改回来. 假设需要修改的序列名:seq_name 1.select seq_name.nextval from dual; //假设得到结果5656 2.alter sequence seq_name increment by -5…
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…
Oracle将自增sequence重置为初始值1时,若是删除再重建,那么依赖它的函数和存储过程将失效,需要重新编译. 这里利用相反的过程,利用负值步长参数,将递增值改为(sequence.NEXTVAL),然后再改回来. 假设需要修改的序列名:seq_name .select seq_name.nextval from dual; //假设得到结果5656 .; ) .select seq_name.nextval from dual;//再查一遍,走一下,重置为1了 .;//还原 以下是存储过…
序列是oracle用来生产一组等间隔的数值.序列是递增,而且连续的.oracle主键没有自增类型,所以一般使用序列产生的值作为某张表的主键,实现主键自增.序列的编号不是在插入记录的时候自动生成的,必须调用序列的方法来生成(一般调用nextval方法).我们也可以编写表的insert触发器来进自动生成. 创建语法: create sequence 序列名称[start with 初始量] [increment by 递增量] [maxvalue 最大值| nomaxvalue] [minvalue…
Oracle 10gR2 Dataguard搭建(非duplicate方式) 我的实验环境: 源生产库(主库): IP地址:192.168.1.30 Oracle 10.2.0.5 单实例 新DG库(备库): IP地址:192.168.1.31 Oracle 10.2.0.5 单实例 1.源生产库开启归档 2.rman备份源生产库 3.修改源生产库参数 4.配置tnsnames.ora 5.同步密码文件 6.配置pfile文件 7.创建备库控制文件 8.还原备库 9.开启日志应用 10.swit…
转载:http://blog.csdn.net/java958199586/article/details/7360152 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l  自动提供唯一的数值 l  共享对象 l  主要用于提供主键值 l  将序列值装入内存可以提高访问效率 创建序列: 1.  要有创建序列的权限 create sequence 或 create any sequence 2.  创建序列的语法 CREATE SEQUENCE sequence  //创建序列…
oracle多表关联删除的两种方法 第一种使用exists方法 delete from tableA where exits ( select 1 from tableB Where tableA.id = tableB.id ) 第二种使用匿名表方式进行删除 delete from ( select 1 from tableA,TableB where tableA.id = tableB.id ) 这种方法只适合两个表都有主键或外键的时候,若是关联一个管道函数就无法删除成功,会提示错误…
Oracle的序列 序列介绍 序列是Oracle提供的用于产生一系列唯一数字的数据库对象. 使用序列能够实现自己主动产生主键值.序列也能够在很多用户并发环境中使用.为所实用户生成不反复的顺序数字,并且不须要不论什么额外的I/O开销. 与视图一样.序列并不占用实际的存储空间,仅仅是在数据字典中保存它的定义信息.用户要在自己的模式中创建序列.必须具有CREATE SEQUECNCE系统权限,假设要在其它模式中创建序列,则必须具有CREATE ANY SEQUENCE系统权限. 创建序列的语法例如以下…