I understand I can’t do this straightforward from studying similar questions on stackoverflow and other sites.
However, I need to do this and I’m willing to go with workarounds.
I tried to create a non-unique index with online and parallel, and then drop the old unique index. However, it fails saying ORA-01408: such column list already indexed.
How to convert an unique index to a non-unique one?
If you don’t want to drop the old index before creating the new one, you can cheat a bit by creating the new index with an additional useless column, e.g.:
Assuming a table with the following configuration:
To convert the index to non unique:
In practice I’m not sure how necessary this is – generally I’d just drop and recreate the index in some low-activity period, preferably take the application down.