Det finns två alternativ här. Antingen måste du ställa in begränsningen som ska skjutas upp inom transaktionen genom att använda kommandot som visas nedan
SET CONSTRAINTS ALL DEFERRED;
Detta bör köras innan du gör UPDATE
uttalande som du har definierat.
Alternativt kan du ställa in begränsningen till att vara INITIALLY DEFERRED
i tabelldefinitionen
create table test(a number not null initially deferred deferrable, b number);
Efter att ha gjort någon av dessa saker bör du sedan kunna köra DML som du har i frågan.