在對數據庫進行操作過程中我們可能會遇到這種情況
重復數據刪除技術可以提供更大的備份容量
一
先來談談如何查詢重復的數據吧
下面語句可以查詢出那些數據是重復的
select 字段
將上面的>號改為=號就可以查詢出沒有重復的數據了
想要刪除這些重復的數據
delete from 表名 a where 字段
(select 字段
上面的語句非常簡單
CREATE TABLE 臨時表 AS
(select 字段
上面這句話就是建立了臨時表
下面就可以進行這樣的刪除操作了
delete from 表名 a where 字段
這種先建臨時表再進行刪除的操作要比直接用一條語句進行刪除要高效得多
這個時候
在oracle中
我們就可以利用這個字段
下面是查詢重復數據的一個例子
select a
where a
(
select max(b
where a
a
)
下面我就來講解一下
而外面就是查詢出除了rowid最大之外的其他重復的數據了
由此
delete from 表名 a
where a
(
select max(b
where a
a
)
隨便說一下
create table 臨時表 as
select a
delete from 表名 a
where a
(
select b
where a
a
);
commit;
二
對於表中兩行記錄完全一樣的情況
select distinct * from 表名
可以將查詢的記錄放到臨時表中
CREATE TABLE 臨時表 AS (select distinct * from 表名);
truncate table 正式表;
insert into 正式表 (select * from 臨時表);
drop table 臨時表;
如果想刪除一個表的重復數據
INSERT INTO t_table_bak
select distinct * from t_table;
三
最快的方法就進入注冊表 在運行……裡輸入regedit
依次展開HKEY_LOCAL_MACHINE SOFTWARE
找到ORACLE節點
然後刪除ORACLE數據文件
最後刪除oracle引導文件
From:http://tw.wingwit.com/Article/program/Oracle/201311/17162.html