確定Oracle數據庫表中重複的記錄電腦知識
作爲一個Oracle數據庫開發者或者DBA,在實際工作中經常會遇到這樣的問題:試圖對庫表中的某一列或幾列創建唯一索引時,系統提示ORA-01452:不能創建唯一索引,發現重複記錄。
下面我們以表code_ref爲例來討論這個問題及其解決辦法。
ERROR位於第1行:
ORA-01452: 無法 CREATE UNIQUE INDEX;找到重複的關鍵字
Oracle系統提示不能對錶code_ref創建一個唯一索引,因爲系統發現表中存在重複的記錄。我們必須首先找到表中的`重複記錄並刪除該記錄,纔可以創建唯一索引。下面介紹三種不同的方法來確定庫表中重複的記錄。
一、自關聯查詢方法
Oracle系統中,對於所有的表都存在一個唯一的列,這就是rowid。對該列使用最大(max)或者最小(min)函數可以非常容易地確定重複的行。
二、GROUP BY/HAVING查詢方法
利用分組函數GROUP BY/HAVING也很容易確定重複的行。以需要創建唯一索引的列分組並統計每組的個數,很明顯如果組中記錄數超過1個就存在重複的行。
三、Exception into子句
採用alter table命令中的Exception into子句也可以確定出庫表中重複的記錄。這種方法稍微麻煩一些,爲了使用“excepeion into”子句,必須首先創建EXCEPTIONS表。創建該表的SQL腳本文件爲。對於NT系統和UNIX系統,Oracle存放該文件的位置稍有不同,在NT系統下,該腳本文件存放在ORACLE_HOMEOra81rdbmsadmin目錄下;而對於UNIX系統,該腳本文件存放在$ORACLE_HOME/rdbms/admin目錄下。
ERROR位於第2行:
ORA-02299:無法驗證(SYSTEM.I_CODE_REF)-未找到重複關鍵字
下面將exceptions表和code_ref表通過rowid關聯起來即可得到表code_ref中重複的記錄。
-
win10系統藍屏怎麼解決大綱
一些升級了Win10系統的電腦用戶反映說,Win10系統在玩一些大型電腦遊戲的時候,運行一點都不卡,非常值得推薦。但是,也有一些Win10系統的用戶發現,他們在玩玩英雄聯盟或者是其他一些騰訊遊戲的時候,出現了藍屏。這可能是系統軟件的衝突所導致的,下面就來介紹一下Win10系...
-
壁掛新風系統安裝圖解
新風系統是由送風系統和排風系統組成的一套獨立空氣處理系統,它分爲管道式新風系統和無管道新風系統倆種。下面小編給大家帶來壁掛新風系統安裝圖解,歡迎大家閱讀。壁掛新風系統安裝圖解一:把專業鑽孔設備固定在牆上師傅把金剛鑽架在牆上,準備鑽通風道,鑽孔的時候需...
-
系統工程可行性分析報告2017
分析報告是一種比較常用的文體。有市場分析報告、行業分析報告、經濟形勢分析報告、社會問題分析報告等等。下面是小編整理的系統工程可行性分析報告,歡迎來參考!1、引言1、1編寫目的隨着房地產的發展,房價也隨之越來越高;且隨着經濟的發展,外出務工的人員的流動性...
-
win7系統在哪裏設置電腦啓動項
Win7電腦開機啓動項在哪裏設置?如何取消軟件開機啓動項?相關內容,我們來看看下文。1、按組合鍵“windows+R”打開運行窗口,如下圖所示:2、輸入“msconfig”,然後點擊“確定”或者按“Enter鍵”;3、接下來彈出,系統配置程序;4、點擊“啓動”,接下來你會看到開機啓動項,把不...