oracle使用sequence批量寫數據


本博客是對之前寫的博客Oracle批量新增更新數據的補充,oracle的知識真是多,其實要學精任何一門知識都是要花大量時間的,正所謂:

學如逆水行舟,不進則退

先介紹oracle sequence的一些知識,sequence顧名思義,就是創建一個序列,這個序列沒調一次就會自動加,利用它這個特性,我們顯然可以用來寫一些批量腳本

(1)sequence用法
oracle sequence的基本語法,這里只做簡單介紹

創建sequence

create sequence [序列名]
minvalue [最小值,eg:1]
nomaxvalue | maxvalue [最大值,eg:9999999]
start with [開始值,eg:1]
increment by [每次遞增:eg:1]
nocycle              // 一直累加,不循環  
no cache |cache [緩存值,eg:10]; 

更新sequence

update sequence [序列名]
minvalue [最小值,eg:1]
nomaxvalue | maxvalue [最大值,eg:9999999]
increment by [每次遞增:eg:1]
nocycle              // 一直累加,不循環  
no cache |cache [緩存值,eg:10]; 

ps:注意start with不能update,只能drop sequence [序列名],然后再create,序列使用是用序列名.nextval

(2)sequence用於批量
這里舉例介紹sequence用於批量更新新增的案例

業務場景:要按某個數值為起點,批量新增數據

先場景sequence:

create sequence seq_t_handle_info
minvalue 1
maxvalue 999999999999999999999999999
start with 624203
increment by 1
cache 20; 
commit;

編寫批量腳本:

insert into t_stuff_dir_related
  (seq, dir_seq, create_date, create_man, stuff_id, t_item)
  select sys_guid(),
        seq_t_handle_info.nextval,
         sysdate,
         'admin',
         b.rs_id,
         a.t_item
    from t_itm_define a
  where a.is_valid =1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM