Cómo eliminar registros duplicados de una tabla en Oracle

Hola Amig@s,

Si necesitamos eliminar todos los registros duplicados de una tabla en concreto, podremos utilizar la siguiente instrucción.

DELETE FROM
   TABLA A
WHERE
  a.rowid >
   ANY (
     SELECT
        B.rowid
     FROM
        TABLA B
     WHERE
        A.CAMPO= B.CAMPO);

Si quieren comprobar antes de eliminar, los registros que se van a borrar, simplemente cambiamos la condición inicial de la consulta:

SELECT * FROM
   TABLA A
WHERE
  a.rowid >
   ANY (
     SELECT
        B.rowid
     FROM
        TABLA B
     WHERE
        A.CAMPO= B.CAMPO);

Espero que les resulte útil.

Salu2.
Share on Google Plus
    Blogger Comment

0 comentarios: