清理oracle資料庫下的資料重複,並保留其一

2021-08-13 10:20:29 字數 3659 閱讀 6547

select * from b2bx where

create_date in

(to_date('2017-12-11 08:22:16', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:17', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:18', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:19', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:20', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:21', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:22', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:23', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11  08:32:55', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:56', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11  08:32:57', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:58', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:59', 'yyyy-mm-dd hh24:mi:ss'),  

to_date('2017-12-11 08:33:00', 'yyyy-mm-dd hh24:mi:ss')

)and create_user='admin'

-- 141 - 94 = ?  剛好47     重複  3次    94/2 = ?   47       、、   此時重複2次   然後再次執行一次    就剩餘47條    ok

select cc.id from (

select a.rowid,a.* from b2bx a

where a.rowid =

(select max(b.rowid) from b2bx b

where a.lotn = b.lotn and

create_date in

(to_date('2017-12-11 08:22:16', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:17', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:18', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:19', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:20', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:21', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:22', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:23', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11  08:32:55', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:56', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11  08:32:57', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:58', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:59', 'yyyy-mm-dd hh24:mi:ss'),  

to_date('2017-12-11 08:33:00', 'yyyy-mm-dd hh24:mi:ss')

)and create_user='admin'

)) cc

select count(*) from b2bx ;  -- 2962982   臨時   刪除47 怎麼只有40條

select count(*) from b2bx -- 2962952   臨時   刪除47 怎麼只有40條

select count(*) from b2bx   -- 2962952   臨時   刪除47 怎麼只有40條

--    2962952 -2962905 = ?   47 ==   剛好   47    

delete from b2bx where id in (

select cc.id from (

select a.rowid,a.* from b2bx a

where a.rowid =

(select max(b.rowid) from b2bx b

where a.lotn = b.lotn and

create_date in

(to_date('2017-12-11 08:22:16', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:17', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:18', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:19', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:20', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:21', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:22', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:22:23', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11  08:32:55', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:56', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11  08:32:57', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:58', 'yyyy-mm-dd hh24:mi:ss'),

to_date('2017-12-11 08:32:59', 'yyyy-mm-dd hh24:mi:ss'),  

to_date('2017-12-11 08:33:00', 'yyyy-mm-dd hh24:mi:ss')

)and create_user='admin'

)) cc

)

oracle資料庫清理

使用truncate 清理並 空間,mysql,sqlserver等有自增序列的資料庫將序列歸零 無法恢復,不能回滾 使用drop 刪除表,但不 空間,可以恢復,不能回滾 使用delete 刪除記錄,不 空間,可恢復,可回滾 1.使用drop和delete之後如何恢復?使用flashback語句 f...

資料庫oracle目錄清理分析

資料庫在執行過程中會不停的產生各類的trc檔案,需要及時清理作業系統oracle目錄,防止資料庫hang死 1 清理oracle使用者下的trc檔案 oracle je b31 home oracle bdump 1 cdump 1 hm 1 incident 1 incpkg 1 ir 1 lck...

資料庫清理

1 如果有plsql客戶端,則可以使用該使用者登入,選中所有表 右鍵drop即可。2 如果有刪除使用者的許可權,則可以 1 dropuseruser namecascade 加了cascade就可以把使用者連帶的資料全部刪掉。建立使用者 create user 使用者名稱 profile defau...