Są tu dwie opcje. Albo musisz ustawić odroczenie ograniczenia w ramach transakcji za pomocą polecenia pokazanego poniżej
SET CONSTRAINTS ALL DEFERRED;
Powinno to zostać uruchomione przed wykonaniem UPDATE
oświadczenie, które zdefiniowałeś.
Alternatywnie możesz ustawić ograniczenie na INITIALLY DEFERRED
w definicji tabeli
create table test(a number not null initially deferred deferrable, b number);
Po wykonaniu jednej z tych czynności powinieneś być w stanie uruchomić DML, który masz w pytaniu.