`
sunxboy
  • 浏览: 2864978 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

用存储过程重置序列-oracle

阅读更多
SQL> create sequence seq_1 increment by 1 start with 1 maxvalue 999999999;
序列已创建。
SQL> create or replace procedure seq_reset(v_seqname varchar2) as
2 n number(10);
3 tsql varchar2(100);
4 begin
5 execute immediate 'select '||v_seqname||'.nextval from dual' into n;
6 n:=-(n-1);
7 tsql:='alter sequence '||v_seqname||' increment by '|| n;--让序列一次递增-N,实现归0
8 execute immediate tsql;
9 execute immediate 'select '||v_seqname||'.nextval from dual' into n;
10 tsql:='alter sequence '||v_seqname||' increment by 1';
11 execute immediate tsql;
12 end seq_reset;
13 /
过程已创建。
SQL> select seq_1.nextval from dual;
NEXTVAL
---------
2
SQL> /
NEXTVAL
---------
3
SQL> /
NEXTVAL
---------
4
SQL> /
NEXTVAL
---------
5
SQL> exec seq_reset('seq_1');
PL/SQL 过程已成功完成。
SQL> select seq_1.currval from dual;
CURRVAL
---------
1
SQL>
这样可以通过随时调用此过程,来达到序列重置的目的。
分享到:
评论

相关推荐

    批量修改Oracle序列值的存储过程

    `seq.txt`文件可能是存储过程的使用示例或者序列列表,也可能包含序列修改的详细说明。如果序列列表在文本文件中,可能需要先读取文件,然后循环调用存储过程。 总之,批量修改Oracle序列值的存储过程是一个实用的...

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

    另一种方法是创建一个存储过程,如示例所示,该过程接受序列名称作为参数,然后执行类似的逻辑来重置序列。这允许你在需要时方便地调用该过程,而无需每次都手动编写SQL语句: ```sql CREATE OR REPLACE ...

    sqlserver中创建类似oracle序列的存储过程

    ### SQL Server 中创建类似 Oracle 序列的存储过程 #### 背景介绍 在数据库管理系统(DBMS)中,序列是一种自增的数据结构,常用于自动产生唯一标识符(如ID)。Oracle 数据库提供了非常方便的序列机制,而 SQL ...

    mysql生成oracle序列

    4. **序列重置逻辑**:在`nextval`函数中,使用了`pow(10, tmp1)`来判断是否达到最大值并重置序列值。这里假设`valuelen`代表序列值的最大位数,但实际应用中可能需要根据具体需求调整逻辑。 通过以上方法,可以在...

    oracle10g课堂练习I(1)

    目录 前言 ...使用序列 7-40 临时表 7-41 临时表:注意事项 7-43 数据字典:概览 7-44 数据字典视图 7-45 数据字典:用法示例 7-46 小结 7-47 练习概览:管理方案对象 7-48 。。。。

    oracle存储过程

    这个过程通过改变序列的增量来重置序列值,以满足特定的需求。 三、YW上的存储过程`YW.SEQ_RESET` 该存储过程`YW.SEQ_RESET`用于调整序列值。它接收三个参数:序列名(`v_seqname`)、记录计数(`n_recordCount`)...

    oracle10g课堂练习I(2)

    练习概览:使用 Oracle Network 组件 11-32 12 主动维护 课程目标 12-2 主动维护 12-3 术语简介 12-4 优化程序统计信息 12-5 使用管理优化程序统计信息页 12-7 自动工作量资料档案库 (AWR) 12-9 AWR 基础...

    Oracle DBA workshop1 (中文版)

    - **Oracle Universal Installer (OUI)**:是Oracle提供的图形化安装向导,简化了安装过程。 - **安装Oracle 软件**:按照提示逐步完成安装过程。 - **数据库配置选项**:在安装过程中可以选择不同的配置选项来...

    删除oracle下当前用户创建的所有对象

    在Oracle数据库管理中,有时需要清理用户环境,例如在测试环境中重置数据,或者在开发过程中重新开始。本文将详细讲解如何在PLSQL环境中删除一个用户所创建的所有对象,包括表、视图、序列、触发器和存储过程,以...

    oracle笔试

    Oracle数据库是企业级广泛使用的数据库管理系统,本文将围绕Oracle笔试中的核心知识点进行详尽的阐述,帮助备考者全面理解和掌握Oracle的相关概念和技术。 首先,Oracle数据库的逻辑结构包括方案、对象、数据块、...

    oracle数据库的赋权脚本

    - **ALTER ANY SEQUENCE**:允许用户修改任何序列,包括重置序列值。 - **ALTER ANY USER**:允许用户修改任何用户的属性,如密码、资源限制等。 - **ALTER ANY RULE**:允许用户修改任何规则,这是Oracle 12c引入的...

    oracle触发器实现主键自动增长

    在Oracle中,触发器是一种存储过程,它被定义为当特定事件(如数据的插入、更新或删除)发生时自动执行的一段代码。通过触发器,我们可以在不修改应用程序逻辑的情况下,对数据库中的数据进行控制和处理。而序列则是...

    删除ORACLE某个用户下所有数据

    在Oracle数据库管理过程中,有时候我们需要清理某个用户下的所有数据。这可能是因为项目结束、测试环境重置或是其他原因导致的。为了完成这一任务,我们可以通过一系列SQL命令来实现对特定用户下各种类型对象(如表...

    oracle sequence语句重置方介绍

    在开发过程中,我们有时需要重置Oracle Sequence,使其从特定值开始重新计数,比如从1开始。以下将详细介绍两种重置Oracle Sequence的方法。 方法一: ```sql DECLARE n NUMBER(10); tsql VARCHAR2(100); p_...

    BE oracle数据库还原注意事项.docx

    2. **处理ORACLE-01589错误**:在恢复过程中,如果在全量备份后使用了增量备份,然后又选择了全量备份文件,可能会导致未使用的日志文件问题。这将导致“ORA-01589: must use RESETLOGS or NORESETLOGS option for ...

    Oracle 中常用数据字典大总结

    以下是从“Oracle中常用数据字典大总结”中提取的关键知识点,详细解释了各个数据字典的作用和查询示例。 ### 1. V$INSTANCE - 实例信息 V$INSTANCE数据字典提供了关于Oracle实例的详细信息,包括实例名、数据库名...

    Oracle判断指定列是否全部为数字的sql语句

    代码如下: select nvl2(translate(name,’\1234567890 ‘, ‘\... 您可能感兴趣的文章:oracle 重置序列从指定数字开始的方法详解ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式Oracle中判断字段是否为

Global site tag (gtag.js) - Google Analytics