oracle重置序列從0開始遞增1

2022-10-08 16:03:17 字數 1215 閱讀 3583

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 ...