如何确定oracle数据库表的重复记录
这里我们以表code_ref为例来讨论和解决问题。
错误位于第一行:
ora-01452:不能创建唯一索引;查找重复关键词
Oracle系统提示不能创建唯一索引的表code_ref因为系统中发现表有重复记录。我们首先要在表中查找重复记录、删除记录创建唯一索引。以下三种不同的方法来确定在库表的重复记录。
1。相关查询方法
在Oracle系统中,有一个独特的所有表列,这是rowid。最大限度的利用(max)或最小(MIN)列的功能可以很容易确定重复的行。
二、按组查询方法
它也很容易确定使用分组功能组/ having.the需要创建唯一索引的列进行分组,每一组数的计数重复的行,这是显而易见的,如果组中的记录数超过1,有重复的行。
三,例外条款
表命令中的子句异常也可以用来决定数据库表中的重复记录。这个方法有点麻烦。为了使用excepeion成条款,您必须先创建例外表,创建表的SQL脚本文件utlexcpt.sql.for NT系统和UNIX系统,Oracle存储文件的位置稍有不同。在NT系统,脚本文件是存储在oracle_home ora81 RDBMS admin目录,而Unix系统,脚本文件存储在oracle_home美元/数据库/ admin目录。
错误位于第二行:
ora-02299:无法验证(系统。i_code_ref)不是没有发现重复关键词
例外情况表和code_ref表与rowid相关表code_ref得到重复记录。