Oracle序列批量重置
来源:互联网 发布:ip网络广播系统拓扑图 编辑:程序博客网 时间:2024/05/17 04:22
Oracle序列批量重置,有两种方法。方法一,批量删除重建。方法二,修改序列increment 属性,为-(当间值-1),查询序列.nextval,还原increment 属性(ps:方法二没有测试通过,只提供思路)。
两种方法都需要注意,需要显示声明序列的删除新建权限。
create or replace procedure seq_set_zero(resultes out varchar2) is
cursor cur_seq is
select t.sequence_name,t.min_value,t.increment_by,t.last_number
from user_sequences t;
v_sequence_name varchar2(50);
v_min_value varchar2(50);
v_increment_by varchar2(50);
v_last_number varchar2(50);
v_next number;begin
/*显示声明权限*/
execute immediate 'grant create sequence to username'; --用户名
execute immediate 'grant drop any sequence to username'; --用户名
fetch cur_seq into v_sequence_name,v_min_value,v_increment_by,v_last_number;
while cur_seq %found loop
/*删除序列:*/
execute immediate 'drop sequence '||v_sequence_name;
/*创建序列:*/
execute immediate 'create sequence '||v_sequence_name||' minvalue 1 start with 1 increment by ''||v_increment_by;
fetch cur_seq into v_sequence_name,v_min_value,v_increment_by,v_last_number;end loop;
/*方法二*/
--open cur_seq;
--fetch cur_seq into v_sequence_name,v_min_value,v_increment_by,v_last_number;
--while cur_seq %found loop
--获取序列
--execute immediate 'select '||v_sequence_name||'.nextval from dual ' into v_next;
--计算需要重置的数据
--v_next := -(v_next-1);
--修改序列increment
--execute immediate 'alter sequence '||v_sequence_name||' increment by '||v_next ;
--查询序列
--execute immediate 'select '||v_sequence_name||'.nextval from dual ';
--修改序列increment
--execute immediate 'alter sequence '||v_sequence_name||' increment by '||v_increment_by;
--fetch cur_seq into v_sequence_name,v_min_value,v_increment_by,v_last_number;
--end loop;
close cur_seq;
resultes := '操作成功' ;
commit;
exception
when others then
rollback;
resultes := '操作失败';
end seq_set_zero;
- Oracle序列批量重置
- ORACLE重置序列sequence
- oracle重置序列方法
- oracle 序列重置
- 求助:Oracle序列重置的问题
- oracle下重置用户的所有序列
- Oracle重置序列(不删除重建方式)
- Oracle重置序列(不删除重建方式)
- 【oracle】重置序列的当前值
- Oracle重置序列(不删除重建方式)
- oracle 重置序列 nextval 为 1
- Oracle重置序列发生器(非重建)
- Oracle序列的创建与重置
- 根据表中的记录重置Oracle序列的值
- 使用JDBC批量修改Oracle序列步长
- 使用JDBC批量修改Oracle序列步长
- Mybatis 批量插入带oracle序列 例子
- Mybatis 批量插入带oracle序列 例子
- Android SIP开发资源
- 【分享】元旦送礼,商业源码免费赠送!
- 蜗牛—JavaWeb之个人信息管理系统(六)
- 【设计模式基础】创建型模式 - 1 - 单件(Singleton)
- eclipse部署不拷jar到web-inf目录问题
- Oracle序列批量重置
- loading黑马程序员之IO键盘输入(2-3)
- Linux 安装oracle10g 配置dataguard 介绍和步骤
- Linux命令之nano - 比vi简单易用的文本编辑器
- [LeetCode] Generate Parentheses
- 第三章 操作符读书随笔
- 复合材料作业7-2
- AE开发中,要素类新增字段
- 算法:选择排序