Сообщение об ошибке выглядит следующим образом
Error message => ORA-00001: unique constraint (schema.unique_constraint_name) violated
ORA-00001 возникает, когда: «запрос пытается вставить« дублирующую »строку в таблицу».Это приводит к сбою уникального ограничения, следовательно, запрос не выполняется, и строка НЕ добавляется в таблицу. "
Решение:
Найти все столбцы, например, используемые в unique_constraintстолбец a, столбец b, столбец c, столбец d совместно создают unique_constraint и затем находят запись из исходных данных, которая является дубликатом, используя следующие запросы:
-- to find <<owner of the table>> and <<name of the table>> for unique_constraint
select *
from DBA_CONSTRAINTS
where CONSTRAINT_NAME = '<unique_constraint_name>';
Затем используйте запрос Джастина Кейва (вставленный ниже), чтобы найтивсе столбцы, используемые в unique_constraint:
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>>
-- to find duplicates
select column a, column b, column c, column d
from table
group by column a, column b, column c, column d
having count (<any one column used in constraint > ) > 1;
вы можете удалить эту дублирующую запись из ваших исходных данных (это был запрос на выборку в моем конкретном случае, как я столкнулся с «Вставить в выбор»)) или измените его, чтобы сделать его уникальным, или измените ограничение.