Eliminar Registros Repeditos

Algunas veces en proceso de migraciones de bases de datos y posterior clonado en otra maquina, poseemos problemas de registros repetidos y en ocasiones es necesario poder borrar esos registros para que continué con el proceso de migración o inserción de datos según sea el caso. He realizado varios scripts y algunos de ellos también me los encontré en la Web. A continuación presentare varias formas de poder realizar este proceso.

Forma 1: (Borrado Directo – Funciones Analíticas)

Este es mucho mas util y nos permite usar funciones analíticas (LAG). ( LAG() devuelve el valor de la anterior fila y LEAD() el valor de la siguiente fila haciendo un Self Join).

Forma 2: (Borrado Directo)

Este borrado es mas efectivo para que los borrados de los datos se hacen por rowid.

Forma 3: (Tabla Espejo – Backup)

 

Quizás es la forma mas rápida pero es necesario recrear todos los demás objetos asociados a la tabla (indexes, constraints, triggers, etc.)

 

Forma 4: (Borrado Directo – Comparación de Campos)

 

Esta opción podemos comprar campo a campo dentro de la tabla. Es necesario aclarar si se comparan columnas not null se tiene que utilizar la función NVL, ya NULL no es igual a NULL.
Espero que sea útil para ustedes.

 

Fuente:
http://cajondesastreoracle.wordpress.com/tag/borrar-registros-duplicados/

Deja un comentario

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