Aquí hay dos opciones. O bien, debe establecer la restricción para que se difiera dentro de la transacción mediante el comando que se muestra a continuación
SET CONSTRAINTS ALL DEFERRED;
Esto debe ejecutarse antes de hacer UPDATE
declaración que ha definido.
Alternativamente, puede establecer la restricción para que sea INITIALLY DEFERRED
en la definición de la tabla
create table test(a number not null initially deferred deferrable, b number);
Después de hacer cualquiera de estas cosas, debería poder ejecutar el DML que tiene en la pregunta.