ORA-30926: невозможно получить стабильный набор строк в источнике
Эта ошибка означает, что база данных не может сопоставить одну запись в tableA
с одной записью в tableB
.Это делает результат MERGE непредсказуемым, а Oracle не любит непредсказуемые результаты.
Поле UNIQUEID является первичным ключом в таблице B, поэтому вероятность дублирования в этом
* отсутствует1012 * Итак, вам нужно найти повторяющиеся вхождения в
tableA
.Вот один из способов сделать это:
select a.uniqueid
, count(*)
from tablea a
group by a.uniqueid having count(*) > 1
Возможно, вы захотите присоединиться к tableB
, либо по соображениям производительности, либо для проверки того, что tableb.uniqueid
на самом деле настолько уникален, насколько вы думаете:
select a.uniqueid
, count(*)
from tablea a
join tableb b on b.uniqueid = a.uniqueid
group by a.uniqueid having count(*) > 1