确定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中重复的记录。
-
Windows10系统无法安装solidworks怎么办
Windows10安装不了SolidWorks怎么办?SolidWorks是一款3d设计软件,对于一些设计工作者来说,是必不可少的作图工具。可是有些用户在Windows10系统下会遇到无法安装SolidWorks的情况,这该如何解决呢?这就需要使用到注册表来解决了,下面我们来看看Windows10安装不了Solid...
-
企业类管理系统论文的开题报告
一课题目的、意义1、目的:随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行,开题报告---人事管理系统。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人...
-
自考互联网数据库常考知识点复习集锦
JDBC的概念JDBC是一套API集合,该集合设置了许多允许Java程序连接数据库的框架。JDBC操作在某些方面看起来和ODBC一样。区别是ODBC不能在Java程序中直接实现,原因是ODBC是用C语言写的。然而JDBC提供了JDBC/ODBC之间的桥梁。JDBC是围绕着X/OpenCallLevelInterface(...
-
高中体液免疫系统图解
高中学生已经学习过神经调节和体液调节的知识,对于人体和动物体的稳态调节有一定的认识;免疫与艾滋病的预防是生活中的常见话题,与学生生活贴近。下面是高中体液免疫系统图解,为大家提供参考。1.免疫系统的组成教师将预防针与免疫调节联系起来,以乙肝疫苗为例,同时pp...