Вы не можете преобразовать неуникальный индекс в уникальный индекс.
(Трудно сказать, что нельзя сделать. Я основываю этот ответ на просмотре страницы ALTER INDEX Справочника по языку SQL, поиске слова UNIQUE и отсутствии намеков Я посмотрел на 11g вместо 10g, но это, вероятно, лучше в этом случае, потому что есть несколько функций, которые существуют в 10g, но документированы только в 11g.)
Однако вы можете использовать неуникальный индекс для ограничения уникальности. Но есть некоторые соображения производительности : уникальный индекс будет меньше и быстрее.
create table my_table(a number);
create index my_table_index on my_table(a);
alter table my_table add constraint my_table_unique unique (a)
using index my_table_index;