This is not an efficient way to remove duplicate records. You can create a hold table and create a unique constraint with ignore_dupe attribute on and do one simple insert on the hold table. All duplicate can be removed without holding a cursor on the primary table. You can then truncvate the original table and dump data into it from hold table.
Hope this helps.