Há duas opções aqui. Ou você precisa definir a restrição a ser adiada dentro da transação usando o comando mostrado abaixo
SET CONSTRAINTS ALL DEFERRED;
Isso deve ser executado antes de fazer o
UPDATE
declaração que você definiu. Alternativamente, você pode definir a restrição como
INITIALLY DEFERRED
na definição da tabela create table test(a number not null initially deferred deferrable, b number);
Depois de fazer qualquer uma dessas coisas, você poderá executar o DML que você tem na pergunta.