1. 程式人生 > >orcale序列設定為某個值

orcale序列設定為某個值

1.刪除序列重新建立

--刪除
drop sequence seq_test ;
--建立
create sequence seq_test 
increment by 1 
start with 指定數字

2.不刪除序列

重置:

create or replace procedure seq_reset(v_seqname varchar2) as n number(10);
tsql varchar2(100);
begin
execute immediate 'select '||v_seqname||'.nextval from dual' into n;
n:=-(n-1);
tsql:='alter sequence '||v_seqname||' increment by '|| n;
execute immediate tsql;
execute immediate 'select '||v_seqname||'.nextval from dual' into n;
tsql:='alter sequence '||v_seqname||' increment by 1';
execute immediate tsql;
end seq_reset;

指定數字開始:

declare
n number(10);
v_startnum number(10):=10000001;--從多少開始
v_step number(10):=1;--步進
tsql varchar2(200);
v_seqname varchar2(200):='MIP_JF_SEQUENCE';--序列名
begin
execute immediate 'select '||v_seqname||'.nextval from dual' into n;
n:=v_startnum-n-v_step;--從10000001開始
tsql:='alter sequence '||v_seqname||' increment by '|| n;
execute immediate tsql;
execute immediate 'select '||v_seqname||'.nextval from dual' into n;
tsql:='alter sequence '||v_seqname||' increment by '||v_step;
execute immediate tsql;
end; 

直接寫:

--4584399777需要到的位置  473744018 此時的位置
select 4584399777-473744018 from dual;
Alter Sequence seq_c_port Increment By 4110655759;
Select seq_c_port.nextval From Dual;
Alter Sequence seq_c_port Increment By 1;