tag:blogger.com,1999:blog-3622944632052682305.post8221206754660010760..comments2023-05-06T16:51:13.838+05:30Comments on ORACLE DBA: delete a duplicate rows in a oracle tableRajeshkumar Govindarajanhttp://www.blogger.com/profile/00281774142717943514noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-3622944632052682305.post-73882919834547443062009-12-17T20:04:17.491+05:302009-12-17T20:04:17.491+05:30I know easier ways to migrate Oracle database and ...I know easier ways to migrate Oracle database and fix possible errors in the same time. you may try the <a href="http://www.recoverytoolbox.com/recovery_tool_for_windows_2000_sql_database.html" rel="nofollow">recovery 2005 sql database</a> program. I periodically use this application in our company to fix database errorsdaspeachttps://www.blogger.com/profile/07882283802002193798noreply@blogger.comtag:blogger.com,1999:blog-3622944632052682305.post-49010181823745540002009-08-11T15:18:42.782+05:302009-08-11T15:18:42.782+05:30Thank you for depicting the flow.
BUT on what bas...Thank you for depicting the flow.<br />BUT on what basis does the delete know which of the '10005' option to delete ? Its randomly deleting one ? <br />So indexes are not used in this in any way ?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3622944632052682305.post-36558529436232304882009-08-11T12:50:12.739+05:302009-08-11T12:50:12.739+05:30hi friend
thanks for reading my blog
the interna...hi friend <br />thanks for reading my blog<br /><br />the internal between duplicate rows is as follows,<br /><br />HR@prod SQL>select max(rowid),empid from emp<br /> 2 group by empid;<br /><br />MAX(ROWID) EMPID<br />------------------ ----------<br />AAAOO/AAEAAABOGAAD 10004<br />AAAOO/AAEAAABOGAAB 10002<br />AAAOO/AAEAAABOGAAA 10001<br />AAAOO/AAEAAABOEAAD 10005<br />AAAOO/AAEAAABOGAAC 10003<br /><br />HR@prod SQL>select rowid,empid from emp;<br /><br />ROWID EMPID<br />------------------ ----------<br />AAAOO/AAEAAABOEAAC 10005<br />AAAOO/AAEAAABOEAAD 10005<br />AAAOO/AAEAAABOGAAA 10001<br />AAAOO/AAEAAABOGAAB 10002<br />AAAOO/AAEAAABOGAAC 10003<br />AAAOO/AAEAAABOGAAD 10004<br /><br />6 rows selected.<br /><br />HR@prod SQL>delete from emp where rowid not in<br /> 2 (select max(rowid) from emp<br /> 3 group by empid);<br /><br />1 row deleted.<br /><br />HR@prod SQL>select rowid,empid from emp;<br /><br />ROWID EMPID<br />------------------ ----------<br />AAAOO/AAEAAABOEAAD 10005<br />AAAOO/AAEAAABOGAAA 10001<br />AAAOO/AAEAAABOGAAB 10002<br />AAAOO/AAEAAABOGAAC 10003<br />AAAOO/AAEAAABOGAAD 10004Rajeshkumar Govindarajanhttps://www.blogger.com/profile/00281774142717943514noreply@blogger.comtag:blogger.com,1999:blog-3622944632052682305.post-25423271578206144112009-08-11T12:11:56.826+05:302009-08-11T12:11:56.826+05:30Could you please explain how this gets accomplishe...Could you please explain how this gets accomplished ?<br /><br />select(max(rowid) from emp group by empid; <br /><br />>> Ok .. this selects the max rowid<br /><br />Having selected this ; how does it detect the duplicates ? By comparing the index and table ? Could you elaborate ?<br /><br />Tnx.Anonymousnoreply@blogger.com