sql >> Database >  >> RDS >> Oracle

Oracle:Waarom ik niet op ROWNUM kan vertrouwen in een verwijderclausule?

Dit komt omdat ROWNUM een pseudo-kolom is, wat impliceert dat ze fysiek niet bestaan. Je kunt beter rowid gebruiken om de records te verwijderen.

Om de duplicaten te verwijderen, kunt u het als volgt proberen:

DELETE FROM mytable a
WHERE EXISTS( SELECT 1 FROM mytable b
              WHERE a.id = b.id
              AND a.name = b.name
              AND a.rowid > b.rowid )


  1. SQL Server-netwerkinterfaces:verbindingsreeks is niet geldig [87]

  2. steiger en Oracle Connection Pooling

  3. Hoe een array op te slaan in een sessievariabele in php

  4. Oracle-subquery ziet de variabele niet vanaf het buitenste blok 2 niveaus hoger