Borrar duplicados en oracle

Home  >>  Bases de datos  >>  Borrar duplicados en oracle

Borrar duplicados en oracle

27
May,2016

0

Ya sé que con esto no descubro la pólvora y que ya está en bastantes sitios en Internet, pero a mí me vale para mantener algunas notas sobre las que echar mano. Si luego esto le vale a alguien más, pues matamos dos pájaros de un tiro. En mi caso he usado este métodom hay muchos más. Y sí, aunque parezca sorprendente, la tabla es siempre la misma, la que queremos borrar y de donde extraemos los datos a borrar, no hay que crear tablas temporales intermedias:

delete from NOMBRE_TABLA_A
where rowid in(
select
rowid
from
NOMBRE_TABLA_A a
where
rowid >
(select min(rowid) from NOMBRE_TABLA_A b
where
b.CAMPO_CLAVE_1 = a.CAMPO_CLAVE_1
and
b.CAMPO_CLAVE_2 = a.CAMPO_CLAVE_2
and

and
b.CAMPO_CLAVE_n = a.CAMPO_CLAVE_n
));

Los campos clave no tienen que ser clave de la tabla, son los campos por los que queremos buscar los duplicados. Que no haya confusiones con el nombre.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *