Se entendi corretamente, você espera que o Oracle ignore valores duplicados antigos e permita novos valores somente quando eles satisfizerem a restrição. O erro é retornado porque quando você adiciona um
UNIQUE
restrição, o Oracle cria um índice exclusivo na coluna para verificar os valores, mas sua tabela já possui valores duplicados, então ela falha. Eu criaria o índice não exclusivo primeiro e, em seguida, adicionaria a restrição para que ele usasse seu índice não exclusivo existente em vez de criar automaticamente o índice exclusivo que falharia:create index arc_ix on arc (name);
alter table arc add constraint arc_uq unique (name) enable novalidate;