Quien soy? RSS feed Enviar por email Imprimir Parar este menu Ir arriba
Blogzote.com
Mexico, informatica, internet, musica y algo mas…

Registros duplicados en Oracle

Como suele pasar, se me olvido crear la llave primaria para una tabla, resultando que se insertaran registros duplicados en ella, ahora, ¿Cómo los elimino? Muy fácil, encontré, rascándole a google, una instrucción estándar para borrar registros duplicados:

1
2
3
4
5
DELETE FROM tabla
 WHERE ROWID NOT IN
            (SELECT MIN(ROWID)
               FROM tabla
              GROUP BY columna1, columna2, columna3...);

Donde por supuesto “tabla” es el nombre de la tabla y “columna1″, “columna2″, etc. Es la llave que identifica a cada registro.

* 22 Comentarios Email Imprimir

22 comentarios para “Registros duplicados en Oracle”

  1. Tales Klein
    agosto 16th, 2007 | 10:13

    faltó

    having count(*) >1

    con eso cotrolas que si hay datos duplicados y no duplicados no borre los últimos….

    Responder

  2. agosto 17th, 2007 | 21:18

    segun yo asi funcionaba, voy a checar lo que dices para ver el detalle, gracias y saludos

    Responder

  3. ferney
    diciembre 27th, 2007 | 11:05

    No se necesita el having count que propone Tales Klein, puesto que el “not in” excluye los registros no duplicados que se asimilan al mínimo.

    Responder

  4. Wanda
    febrero 5th, 2008 | 6:48

    Que bien, tenía tiempo buscando un modo de seleccionar solo una fila de los registros duplicados. Había probado utilizando having count pero este te lista todas las filas. Este script es mucho mejor. Muchas gracias :D

    Responder

  5. febrero 7th, 2008 | 12:50

    que bueno que te sirviera, saludos

    Responder

  6. donguru
    octubre 6th, 2008 | 22:10

    a mi tambien me sirvio! o era yo o era mi despido del trabajo jaja..
    gracias!

    Responder

  7. Lolo
    noviembre 16th, 2008 | 16:49

    Muy bueno! llevaba tiempo buscando la forma más sencilla de buscar/eliminar duplicados!! gracias!

    Responder

  8. Mandrake
    diciembre 1st, 2008 | 9:42

    me fue de mucha utilidad.

    gracias

    Responder

  9. Soren
    diciembre 23rd, 2008 | 15:52

    Muy buen dato, lo estaba necesitando

    Responder

    Donzote Reply:

    que bueno que te halla servido, saludos

    Responder

  10. steven
    marzo 26th, 2009 | 11:12

    GRACIAS, ES MAS FACIL DE LO QUE PARECE….

    BTA, COL

    Responder

    Donzote Reply:

    que bueno que te halla servido, para eso estamos, para ayudar, saludos

    Responder

  11. Leo
    julio 24th, 2009 | 11:08

    GRACIAS!!! la verdad que me fue muy util!!!!

    Saludos!

    Responder

  12. ssgj
    noviembre 4th, 2009 | 8:13

    Mas de chevere, esta sentencia gracias a todos por su ayuda a través de la web

    Responder

  13. Gato
    noviembre 20th, 2009 | 14:37

    Gracias por el post, es una instrucción pequeña pero que me resuelve el trabajo grandemente, se te agradece.

    Responder

  14. Nelson
    febrero 12th, 2010 | 10:05

    Muchas Gracias, andaba en busca de algo asi

    Responder

  15. febrero 19th, 2010 | 5:23

    Perfecto.

    Muchas gracias

    Responder

  16. idexan
    octubre 14th, 2010 | 17:22

    Más que perfecto..!
    Mil gracias.

    Responder

  17. noviembre 23rd, 2010 | 10:19

    Excelente !!!

    Responder

  18. jessi
    diciembre 17th, 2010 | 16:12

    graciasssssssssssssss me salvas la vida!!!

    Responder

  19. Marlone
    noviembre 30th, 2011 | 8:31

    Muchas gracias!
    Es muy bueno encontrar personas que gustan compratir sus conocimientos!

    Responder

  20. JEbus
    diciembre 9th, 2011 | 15:35

    Gracias, aunque le hice este cambio MAX(ROWID) para conservar el registro más reciente.

    Responder

Deja un comentario