- 浏览: 128528 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (103)
- Oracle (31)
- Java (16)
- 随笔 (5)
- ExtJs (1)
- Hibernate (4)
- Spring (5)
- MyEclipse (8)
- Junit4 (1)
- Android (2)
- tomcat (1)
- Powerdesigner (1)
- IE (1)
- 杂七杂八 (2)
- webservice (1)
- 多线程 (2)
- MySql (11)
- iptables (1)
- angularjs (1)
- JS (1)
- spring security (1)
- eclipse (1)
- solr (1)
- maven (1)
- apache (1)
- git (0)
- linux (0)
- nginx (0)
最新评论
-
sxd05:
帮了我大忙了,搞两天没查到原因
java session 每次请求都会产生新的sessionId -
danStart:
非常nice
java session 每次请求都会产生新的sessionId
DELETE FROM TABLE WHERE ROWID NOT IN
(SELECT MAX(rowID) FROM TABLE GROUP BY NEWCODE)
解释:
1:SELECT MAX(rowID) FROM TABLE GROUP BY NEWCODE,按照新的字段(newcode)分组;
2:然后查找分组后的rowId,其中rowId可以为MIN(rowId)或MAX(rowId);
3:DELETE FROM TABLE WHERE ROWID NOT IN (SELECT MAX(rowID) FROM TABLE GROUP BY NEWCODE) 进行删除重复记录
4:该语句执行效果:当newCode中有一列属性有重复值时,就会删除;
5:游标是对多行数据结果的一个操作入口,通过遍历游标,我们可以对访问到每行记录的数据,并通过游标取出值,从而进行操作。当select出多行结果集时就会用到cousor.不过游标的缺点就是消耗资源。
项目中遇到的实际问题
declare
v_sql varchar2(4000);
v_table varchar2(4000);
cursor CUR_DETAILID is
select tname from tab where tname like 'X\_%' escape '\';
begin
delete from C_DETAIL_FEATURE_RE;
open CUR_DETAILID;
loop
fetch CUR_DETAILID
into v_table;
exit when CUR_DETAILID%notfound;
v_sql := 'insert into C_DETAIL_FEATURE_RE select S_C_DETAIL_FEATURE_RE.NEXTVAL,D_DETAILID,D_FNO,D_FID FROM ' ||
v_table;
dbms_output.put_line(v_sql);
execute immediate v_sql;
commit;
end loop;
close CUR_DETAILID;
----去除重复
delete from C_DETAIL_FEATURE_RE
where rowid not in (select max(rowid)
from C_DETAIL_FEATURE_RE
group by (d_fid, d_detailid, d_fno));
commit;
end;
(SELECT MAX(rowID) FROM TABLE GROUP BY NEWCODE)
解释:
1:SELECT MAX(rowID) FROM TABLE GROUP BY NEWCODE,按照新的字段(newcode)分组;
2:然后查找分组后的rowId,其中rowId可以为MIN(rowId)或MAX(rowId);
3:DELETE FROM TABLE WHERE ROWID NOT IN (SELECT MAX(rowID) FROM TABLE GROUP BY NEWCODE) 进行删除重复记录
4:该语句执行效果:当newCode中有一列属性有重复值时,就会删除;
5:游标是对多行数据结果的一个操作入口,通过遍历游标,我们可以对访问到每行记录的数据,并通过游标取出值,从而进行操作。当select出多行结果集时就会用到cousor.不过游标的缺点就是消耗资源。
项目中遇到的实际问题
declare
v_sql varchar2(4000);
v_table varchar2(4000);
cursor CUR_DETAILID is
select tname from tab where tname like 'X\_%' escape '\';
begin
delete from C_DETAIL_FEATURE_RE;
open CUR_DETAILID;
loop
fetch CUR_DETAILID
into v_table;
exit when CUR_DETAILID%notfound;
v_sql := 'insert into C_DETAIL_FEATURE_RE select S_C_DETAIL_FEATURE_RE.NEXTVAL,D_DETAILID,D_FNO,D_FID FROM ' ||
v_table;
dbms_output.put_line(v_sql);
execute immediate v_sql;
commit;
end loop;
close CUR_DETAILID;
----去除重复
delete from C_DETAIL_FEATURE_RE
where rowid not in (select max(rowid)
from C_DETAIL_FEATURE_RE
group by (d_fid, d_detailid, d_fno));
commit;
end;
发表评论
-
Oracle trunc函数的使用
2015-05-11 09:59 432转载于:http://blog.csdn.net/eleve ... -
不安装Oracle客户端情况下用PL/SQL连接远程服务器
2015-04-30 13:53 1141首先下载免安装的客户端instantclient_12_1, ... -
Oracle 设置编码
2015-03-26 14:32 603在导入导出数据时记得设置编码会减少很多问题: set ... -
oracle 统计表的列数
2015-01-28 16:33 565select count(*) from dba_tab_c ... -
ORA-12543 When creating a new oracle instance, Oracle 11g
2015-01-26 16:31 1005I was using a password for al ... -
oracle 调用存储过程
2014-12-30 17:42 640转载自:http://ajax-xu.iteye.com/b ... -
oracle 多行数据 转为 一行数据,用逗号分隔
2014-12-30 11:13 1153oracle 多行数据 转为 一行数据,用逗号分隔 有时 ... -
修改 Oracle 连接数
2014-12-01 15:50 6201. 查看processes和sessions参数 S ... -
同一个Oracle 实例下导入不同的数据库
2014-10-14 20:36 659Oracle 中一般不会创建多个实例的,是以用户为基本单位的 ... -
Oracle to_char() 和to_date()的使用
2014-09-25 19:21 1202to_char() 函数和to_date()函数有时会同时使 ... -
oracle 用拼接Sql 语句的方式修改序列Sequence
2014-09-15 21:51 1679select 'alter sequence '||user ... -
Oracle 11g 无法导出空表的解决办法
2014-09-12 16:58 603oracle 由10g升级为11g后,为节省表空间,当使用 ... -
Oracle 创建索引
2014-09-11 15:07 573当表数据量非常大时,创建索引将对查询性能的提高有很大帮助 ... -
oracle 修改主键,新增字段为主键
2014-07-25 18:05 22021:首先判断主键是否作为其他表的外键,若有,执行语句 ... -
oracle imp 时报 sp2-0734的解决办法
2014-07-24 16:10 950今天给公司测试库导数据,导了半天都不成功,一直报sp2-07 ... -
oracle 中YYYY-MM-DD HH24:MI:SS的使用
2014-07-02 14:51 13768转载:http://lilixu.iteye.com/blo ... -
oracle 常用命令大全
2014-06-27 11:10 602full = y 和 fromusr, touser 不能 ... -
oracle查询表中列数
2014-05-28 15:55 7411、查询表中列数 select count( col ... -
pl/sql 导入导出数据库方法
2014-05-16 12:01 3110转载:http://blog.csdn.net/zhou ... -
Oracle 查询及释放被锁的表
2014-05-15 17:18 4181.查询被锁的表: SELECT object_na ...
相关推荐
### Oracle删除重复记录性能分析 #### 一、背景与需求 在数据库管理中,经常会遇到数据清理的需求,尤其是在Oracle数据库中处理重复记录时。本文旨在通过对比几种不同的方法来删除Oracle中的重复记录,并分析其...
本文将详细介绍如何在Oracle数据库中有效地删除表内的重复记录。 ### 一、理解重复记录 在数据库中,重复记录是指具有相同字段值的一组记录。例如,在一个员工表中,如果有多个记录拥有相同的姓名、职位等信息,则...
要删除Oracle数据库表中的重复记录,有几种方法可以采用: ##### 方法一:使用子查询与DELETE语句 这种方法适用于只需要删除重复记录中的某些行的情况。步骤如下: 1. **找出重复的记录**:首先,我们需要找到...
查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...
删除重复记录时,通常保留一个代表性的记录,例如保留 `ROWID` 最小的记录。可以使用以下 SQL 语句: ```sql DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ...
### Oracle查询重复数据与删除重复记录方法 在Oracle数据库中,有时我们需要找出并处理重复的数据。这不仅可以提高数据质量,还能提升查询效率。本文将详细介绍几种常用的查询和删除Oracle数据库中重复记录的方法。...
接下来,我们可以使用 DELETE 语句来删除这些重复记录,但保留 rowid 最小的记录: ```sql delete from R_RESOURCE_DETAILS where (FIELD_CODE) in (select FIELD_CODE from R_RESOURCE_DETAILS group by FIELD_...
根据给定的文件标题、描述和部分内容,我们可以深入探讨Oracle数据库中删除重复记录的方法,这对于维护数据完整性和提高系统性能至关重要。以下将详细介绍几种在Oracle数据库中有效删除重复记录的技术。 ### 1. ...
### Oracle查询重复数据与删除重复记录方法 #### 一、查询重复数据 ##### 1. 使用ROWID方法 ROWID是Oracle中一个特殊的数据类型,它代表了表中每一条记录在物理存储上的唯一地址。利用ROWID可以非常高效地查询和...
使用Oracle查询并删除重复记录的SQL语句 在实际应用中,删除重复记录是非常常见的操作,特别是在数据导入、数据整合和数据清洁等场景中。Oracle数据库提供了多种方式来查询和删除重复记录,本文将详细介绍这些方法...
删除重复记录的方法原理:在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会...
### ORACLE去除重复数据方法 在数据库管理与维护过程中,数据重复问题是非常常见的现象,尤其在大型企业级应用中更是如此。重复数据不仅占用存储空间,还可能导致数据分析结果出现偏差,影响业务决策的准确性。因此...
### PL/SQL删除Oracle数据库中的重复记录方法详解 在日常的数据库管理与维护工作中,我们经常会遇到需要处理数据表中的重复记录的情况。特别是在大型企业级应用中,由于各种原因(如数据导入错误、系统故障等),...
### Oracle数据库删除表中重复记录的方法 在Oracle数据库管理中,经常会遇到需要处理表中的重复数据的情况。重复数据不仅会占用不必要的存储空间,还可能导致数据统计错误或业务逻辑混乱等问题。因此,掌握如何有效...
以下将详细解释如何在Oracle中处理这两种类型的重复数据问题:部分字段重复和完全重复记录。 一、部分字段重复数据的删除 1. 查询重复数据: 使用`GROUP BY`和`HAVING`子句可以找出具有相同值的字段组合。例如,...
本文将详细探讨如何在Oracle中查询和删除重复记录,主要聚焦于单个字段和多个字段的情况。 1. **单个字段重复记录查询** 当我们需要根据单个字段(如`peopleId`)查找重复记录时,可以使用以下SQL语句: ```sql ...
本文将详细介绍如何在不同的数据库系统(如MySQL、SQL Server、Oracle等)中删除重复记录。 #### SQL删除重复记录的基本思路 删除重复记录的核心思想是先识别出哪些记录是重复的,然后通过某种方式将这些重复记录...
这种方法可以根据 peopleId 字段来判断重复记录,并删除重复记录中除了 rowid 最小的记录以外的所有记录。 方法三:使用多个字段 第三种方法是使用多个字段来查询重复数据。例如,下面的语句可以查询出表中多余的...