簡單介紹oracle重置序列的方法
oracle序列建立以後,如果想重置序列從 0 開始,逐漸遞增1,可以採用如下儲存過程:
create or replace procedure reset_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 immediate 'select ' || p_seq_name || '.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.sequence_name || ''');' END 重置序列指令碼, 'DROP SEQUENCE ' || a.sequence_name 刪除序列指令碼, 'RENAME ' || a.sequence_name || ' TO {newname}' 重新命名指令碼 FROM USER_SEQUENCES a WHERE a.last_number<>1 ORDER BY a.sequence_name ASC;
到此這篇關於oracle重置序列的文章就介紹到這了。希望對大家的學習有所幫助。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2872376/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單介紹NMS的實現方法
- 簡單介紹PostgreSQL解析URL的方法SQL
- 簡單介紹java中的equals()方法Java
- CSRF簡單介紹及利用方法
- Oracle10g SQL tune adviser簡單介紹OracleSQL
- Webpack 的簡單介紹Web
- AOP的簡單介紹
- 簡單介紹2種Java讀取Oracle大欄位資料(CLOB)的方法JavaOracle
- [轉]Oracle資料庫ASH和AWR的簡單介紹Oracle資料庫
- form表單的簡單介紹ORM
- Flownet 介紹 及光流的簡單介紹
- vue匯出excel(簡單方法完整介紹)VueExcel
- 簡單介紹js 陣列 fill() 填充方法JS陣列
- 簡單介紹MySQL列印死鎖日誌的方法MySql
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- ajax簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- Map簡單介紹
- JSON簡單介紹JSON
- ActiveMQ簡單介紹MQ
- 函子的簡單介紹
- 簡單介紹C#使用物件序列化類庫MessasgePackC#物件
- 簡單介紹Lua中的變數與賦值方法變數賦值
- 簡單介紹python中使用正規表示式的方法Python
- 簡單介紹C#呼叫USB攝像頭的方法C#
- 簡單介紹Oracle 19c RAC 手工建庫的過程Oracle
- Git_簡單介紹Git
- jQuery Validate簡單介紹jQuery
- JSON物件簡單介紹JSON物件