//重置sequence值的例子 declare n number(10); tsql varchar2(100); begin select my_seg.nextval into n from dual; n:=-(n-1); tsql:='alter sequence my_seg increment by'|| n; execute immediate tsql; select my_seg.nextval into n from dual; tsql:='alter sequence my_seg increment by 1'; execute immediate tsql; end; /
如果用这种方法,那还多了,不过我并不觉得比我的第一个方法简单,否则我早贴出来了. 举例: alter sequence my_seg maxvalue n minvalue 0 cycle; select my_seg.nextval into n from dual; alter sequence my_seg maxvalue m no cycle;还不如DROP掉重建
declare
n number(10);
tsql varchar2(100);
begin
select my_seg.nextval into n from dual;
n:=-(n-1);
tsql:='alter sequence my_seg increment by'|| n;
execute immediate tsql;
select my_seg.nextval into n from dual;
tsql:='alter sequence my_seg increment by 1';
execute immediate tsql;
end;
/
举例:
alter sequence my_seg maxvalue n minvalue 0 cycle;
select my_seg.nextval into n from dual;
alter sequence my_seg maxvalue m no cycle;还不如DROP掉重建