oracle應用之使用sequence批量寫資料

2021-09-25 03:42:46 字數 1536 閱讀 6675

本部落格是對之前寫的部落格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

oracle應用之sql小寫

本人不喜歡在sql裡面大小寫混合在一起,每次看到別人的sql,總是要轉換為小寫,如以下sql with t as select date 2014 05 06 time1,1 type,100 times from dual union all select date 2014 05 06 2,20...

在mysql中模擬oracle的sequence

為了在mysql中實現類似於oracle的sequence的功能,要進行以下步驟 1 建立乙個只有乙個資料行的資料表 create table t sequence id int unsigned not null insert into t sequence values 0 2 用以下操作檢索出...

Oracle高階應用之合併MERGE

為了方便大家學習和測試,所有的例子都是在oracle自帶使用者scott下建立的。merge是什麼?這麼厲害的東西你都不知道,你這學生是怎麼學習的?老師不給你講你就不會自學了嗎?哎!可憐天下老師心啊,罷了罷了,老師現在給你好好講一下吧。merge是oracle9i新增的語法,中文意思是 合併 那合併...