oracle序列建立以後,如果想重置序列從 0 開始,逐漸遞增1,可以採用如下儲存過程:
create or replace
procedure resetbsydaur_seq( p_seq_name in varchar2 )
is l_val number;
begin
execute immediate
'select ' || p_seq_name || '.nextval from dual' into l_val;
execute immediate
'alter sequence ' || p_seq_name || ' increment by -' || l_val ||
' minvalue 0';
execute immediatebsydaur
'select ' || p_seq_namewww.cppcns.com || '.nextval from dual' into l_val;
execute immediate
'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
end;
儲存過程建立以後,呼叫該儲存過程,引數是要重置的序列名稱:
call reset_seq(『test_seq』);
使用下面的sql語句查詢需要重置的序列:
select a.sequence_name 序列名稱,
a.min_value 序列最小值,
to_char(to_number( a.max_value)) 序列最大值,
a.last_number 序列當前值,
case a.last_number when 1 then '--不需要重置;' else
'call seq_reset(''' || a.sequenbsydaurce_name || ''');' end 重置序列指令碼,
'drop sequence ' || a.sequence_name 刪除序列指令碼,
'rename ' || a.sequence_name || ' to ' 重新命名指令碼
from user_sequences a where a.last_number<>1
order by a.sequence_name asc;
本文標題: oracle重置序列從0開始遞增1
本文位址:
oracle 重置序列從指定數字開始的方法詳解
原文 oracle 重置序列從指定數字開始的方法詳解 declare n number 10 v startnum number 10 10000001 從多少開始 v step number 10 1 步進tsql varchar2 200 v seqname varchar2 200 mip j...
oracle 序列重置
問題一 如何重置oracle序列 oracle序列建立以後,如果想重置序列從 0 開始,逐漸遞增1,可以採用如下儲存過程 create or replace procedure reset seq p seq name in varchar2 isl val number begin execute...
oracle重置序列
檢視對應序列,一般seq開頭,模糊查詢表名 select from user sequences where sequence name like khroleaccess 此處查詢出來序列名為seq khroleaccess,下邊以此序列名為例,實際應用時改為自己序列名即可。select seq ...