Vous ne pouvez pas convertir un index non unique en un index unique.
(Il est difficile de dire ce qui ne peut pas être fait. Je base cette réponse sur l'examen du ALTER INDEX page de la référence du langage SQL, en recherchant le mot UNIQUE et en ne trouvant aucun indice pertinent. J'ai regardé 11g au lieu de 10g, mais c'est probablement mieux dans ce cas car il y a quelques fonctionnalités qui existent dans 10g mais qui ne sont documentées que dans 11g.)
Cependant, vous pouvez utiliser un index non unique pour une contrainte unique. Mais il y a quelques considérations sur les performances :un index unique serait plus petit et plus rapide.
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;