oracle批量刪除表裡的歷史資料的方法

2021-12-30 02:20:45 字數 538 閱讀 3721

專案中有個需求需要每個月末定時去刪除一張表裡的歷史資料,

剛開始就寫了乙個簡單的delete語句,然後起乙個job定時去呼叫,

後來被告知歷史資料量很大,所以從效能和安全上考慮對sql進行了如下修改:

declare cursor id_key_cursor is

select id_key

from x_table

where x_column = "***"

begin

for v_to_del in id_key_cursor loop

delete x_table

where id_key = v_to_del.id_key

if mod(id_key_cursor%rowcount, 5000) = 0

then commit;

end if;

end loop;

commit;

end;上面將處理的資料每5000筆提交一次,分批處理;

id_key可以是x_table的主鍵,也可以是row_id;

Jenkins 批量刪除歷史構建

在一次巡查jenkins時,發現很多個專案的歷史構建比較多,這些歷史構建對於現在來說又沒有什麼用處,那麼想把它刪除,但是乙個乙個刪除很累,畢竟總共加起來有上千個,歷史構建,而且還不只是乙個專案。那麼我們可以批量刪除嗎?答案是可以的。專案管理 指令碼命令列 放入下面的指令碼 def jobname u...

刪除oracle表裡的重覆記錄

查詢表裡的重覆記錄 select count from table name where rowid in select a.rowid from table name a,table name b where a.rowid b.rowid and a.col1 b.col1 and a.col2...

oracle批量刪除

專案中有個需求需要每個月末定時去刪除一張表裡的歷史資料,剛開始就寫了乙個簡單的delete語句,然後起乙個job定時去呼叫,後來被告知歷史資料量很大,所以從效能和安全上考慮對sql進行了如下修改 declare cursor id key cursor is select id key from x...