您的位置:首页 > 数据库 > Oracle

oracle 更改序列的初始值

2018-01-31 16:13 357 查看
declare v_in varchar2(1024); v_start int;v_end int ; v_table varchar2(200);v_seq varchar2(200);v_table_seq varchar2(100);
begin
v_table:='jx_khfa';--表名
v_seq:='seq_jx_khfa';--序列名
v_table_seq:='id';--表字段对应序列
v_in:= 'select max('||v_table_seq||') from '||v_table;--查询表中最大值
execute immediate v_in into v_start;
v_in:= 'select '||v_seq||'.nextval from dual ';--查询下一个序列值
execute immediate v_in into v_end;
v_in:= 'ALTER SEQUENCE '||v_seq||' INCREMENT BY '||to_char(v_start-v_end+1);--更改步长
execute immediate v_in;
execute immediate 'select '||v_seq||'.nextval from dual ' into v_end;--执行一次序列
execute immediate 'ALTER SEQUENCE '||v_seq||' INCREMENT BY 1';--改回步长
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 序列 初始值