- 浏览: 124774 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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 397转载于:http://blog.csdn.net/eleve ... -
不安装Oracle客户端情况下用PL/SQL连接远程服务器
2015-04-30 13:53 1086首先下载免安装的客户端instantclient_12_1, ... -
Oracle 设置编码
2015-03-26 14:32 549在导入导出数据时记得设置编码会减少很多问题: set ... -
oracle 统计表的列数
2015-01-28 16:33 537select count(*) from dba_tab_c ... -
ORA-12543 When creating a new oracle instance, Oracle 11g
2015-01-26 16:31 973I was using a password for al ... -
oracle 调用存储过程
2014-12-30 17:42 607转载自:http://ajax-xu.iteye.com/b ... -
oracle 多行数据 转为 一行数据,用逗号分隔
2014-12-30 11:13 1100oracle 多行数据 转为 一行数据,用逗号分隔 有时 ... -
修改 Oracle 连接数
2014-12-01 15:50 5901. 查看processes和sessions参数 S ... -
同一个Oracle 实例下导入不同的数据库
2014-10-14 20:36 610Oracle 中一般不会创建多个实例的,是以用户为基本单位的 ... -
Oracle to_char() 和to_date()的使用
2014-09-25 19:21 1141to_char() 函数和to_date()函数有时会同时使 ... -
oracle 用拼接Sql 语句的方式修改序列Sequence
2014-09-15 21:51 1645select 'alter sequence '||user ... -
Oracle 11g 无法导出空表的解决办法
2014-09-12 16:58 576oracle 由10g升级为11g后,为节省表空间,当使用 ... -
Oracle 创建索引
2014-09-11 15:07 544当表数据量非常大时,创建索引将对查询性能的提高有很大帮助 ... -
oracle 修改主键,新增字段为主键
2014-07-25 18:05 21081:首先判断主键是否作为其他表的外键,若有,执行语句 ... -
oracle imp 时报 sp2-0734的解决办法
2014-07-24 16:10 892今天给公司测试库导数据,导了半天都不成功,一直报sp2-07 ... -
oracle 中YYYY-MM-DD HH24:MI:SS的使用
2014-07-02 14:51 13697转载:http://lilixu.iteye.com/blo ... -
oracle 常用命令大全
2014-06-27 11:10 576full = y 和 fromusr, touser 不能 ... -
oracle查询表中列数
2014-05-28 15:55 7061、查询表中列数 select count( col ... -
pl/sql 导入导出数据库方法
2014-05-16 12:01 3050转载:http://blog.csdn.net/zhou ... -
Oracle 查询及释放被锁的表
2014-05-15 17:18 3911.查询被锁的表: SELECT object_na ...
相关推荐
总结的多条oracle删除重复记录的例子
oracle删除重复记录性能分析平时收集,希望能给需要帮助的人提供便利
查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...
oracle中 ,如何删除重复的记录信息
Oracle查询重复数据与删除重复记录方法,Oracle查询重复数据与删除重复记录方法
查询及删除oracle重复记录的SQL语句
Oracle数据库删除重复记录的方法
删除重复记录的方法原理:在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会...
Oracle数据库删除表中重复记录的方法三则.txt
使用Oracle查询并删除重复记录的SQL语句
Oracle查询重复数据并删除,只保留一条记录.docx
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleId in (select peopleId from people group by peopleId having count (peopleId) >...
删除重复记录 删除数据表中的重复记录,包括MySQL、SQL Server、Oracle等
plsql删除重复记录
几个删除重复记录的SQL语句 1.用rowid方法 2.用group by方法 3.用distinct方法 1。用rowid方法
Oracle 查找与删除表中重复记录的步Oracle 查找与删除表中重复记录的步
oracle 数据库中重复的记录行的清理删除方法,总结了几种比较可行的方法路径并分析了方法的优劣
oracle快速删除重复的记录