A mensagem de erro incluirá o nome da restrição que foi violada (pode haver mais de uma restrição exclusiva em uma tabela). Você pode usar esse nome de restrição para identificar a(s) coluna(s) em que a restrição exclusiva é declarada
SELECT column_name, position
FROM all_cons_columns
WHERE constraint_name = <<name of constraint from the error message>>
AND owner = <<owner of the table>>
AND table_name = <<name of the table>>
Depois de saber quais colunas são afetadas, você pode comparar os dados que está tentando
INSERT
ou UPDATE
contra os dados já na tabela para determinar por que a restrição está sendo violada.