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