Eliminar registros repetidos

Cuando existen registros repetidos dentro de una base de datos una de las formas de eliminarlos sería la siguiente:

DELETE FROM tabla
WHERE rowid not in
(SELECT MIN(rowid)
FROM tabla
GROUP BY columna_pk1, columna_pk2,...) ;
COMMIT;

Entendiendose que columna_pk1, columna_pk2, … son las columnas que forman parte de la clave primaria. Además solo asume repetición por clave primaria, en ningun caso revisa todas las columnas de la tabla.

Fuentes:
http://www.devx.com/tips/Tip/14665

http://www.remote-dba.cc/oracle_tips_duplicate_rows.htm

http://www.dba-oracle.com/t_delete_duplicate_table_rows.htm

Publicado en Base de Datos, Oracle