Oracle用游标删除重复数据

CREATE OR REPLACE
PROCEDURE PR_MOD_BASE
IS

cursor c_base IS
SELECT MIN(INVENTORY_DATE) IDATE,KUNNR,MATNR FROM STOCK_BASE_DATA GROUP BY TO_CHAR(INVENTORY_DATE,‘yyyy-MM-dd‘),
KUNNR,MATNR HAVING count(*) > 1;

c_row c_base%rowtype;

BEGIN

FOR c_row in c_base loop
        DELETE FROM STOCK_BASE_DATA WHERE INVENTORY_DATE = c_row.IDATE and KUNNR = c_row.KUNNR and MATNR = c_row.MATNR;
end loop;
COMMIT;
END;
时间: 2024-10-10 22:17:32

Oracle用游标删除重复数据的相关文章

Oracle查询及删除重复数据

1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录 DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID

Oracle使用游标删除所有用户数据表中的所有记录脚本

应用场景:因为数据库中的数据涉及机密信息,希望一次性能删除掉所有数据,只保留数据表结构,供新项目开发程序用 测试结果:经查询已删除所有数据 存在问题:数据表如果存在外键的话下面脚本可能执行不成功,请自行删除或者过滤掉该表,见下图 操作办法:直接将下面的脚本内容复制到PQSQL中执行即可 --Oracle使用游标删除所有用户数据表中的所有记录脚本 declare mystring NVARCHAR2(1000):=''; --定义要输出的字符串变量 cursor mycursor is --定义游

Oracle 删除重复数据

DELETE FROM tb E WHERE E.ROWID > (SELECT MIN(X.ROWID)                    FROM tb X                   WHERE X.APR_BSS_ID = E.APR_BSS_ID                   AND X.ID=E.ID                   AND X.NAME=E.NAME                 ); Oracle 删除重复数据

oracle 查看删除重复数据

1.查询重复数据select * from 表名 where 重复字段(一般为主键)in (select 重复字段 from 表名 group by 重复字段 having count(WF_OID)>1) Select 重复字段,Count(*) From表名 Group By 重复字段 Having Count(*) > 1 2.删除重复数据DELETE from 表名 WHERE (id) IN ( SELECT 重复字段 FROM 表名 GROUP BY 重复字段HAVING COUN

mysql 删除重复数据

如题:mysql 数据库删除重复数据 因为是mysql 所以其他数据哭的命令在mysql 中是不能使用的.不要想当然的使用sql 脚本 delete from table1 where field1 in (select field1 from table1 group by field1 having count(field1) > 1) and rowid not in (select min(rowid) from table1 group by field1 having count(f

MYSQL删除重复数据

delete from co_jobinformation cwhere c.name in (select cc.name from co_jobinformation cc group by  cc.name   having count(cc.name) > 1)and rowid not in (select min(rowid) from co_jobinformation e group by e.name having count(e.name )>1) 之前在oracle数据库

Oracle查询表里的重复数据方法

select id from group by id having count(*) > 1 按照id分组并计数,某个id号那一组的数量超过1条则认为重复. 如何查询重复的数据 select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 PS:将上面的>号改为=号就可以查询出没有重复的数据了. Oracle删除重复数据的SQL(删除所有): 删除重复数据的基本结构写法: 想要删除这些重复的数据,可以使用下面语句

数据库删除重复数据

第一,数据库中实体重复的解决方法. 实体重复也就是完全重复:即表中两行记录完全一样的情况.这类数据重复就需要删除一条记录,解决方法比较简单,具体操作如下: 使用select distinct * from tableName就可以得到无重复记录的结果集.如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除select distinct * into #Tmp from tableNamedrop table tableNameselect * into tableName from

orcl数据库查询重复数据及删除重复数据方法

工作中,发现数据库表中有许多重复的数据,而这个时候老板需要统计表中有多少条数据时(不包含重复数据),只想说一句MMP,库中好几十万数据,肿么办,无奈只能自己在网上找语句,最终成功解救,下面是我一个实验,很好理解. ------------------------------------------------------------------------------------------------------------------------ 假设有一张人员信息表cs(姓名,证件号,地址