J'ai résolu le problème et je poste la solution au cas où quelqu'un rencontrerait un tel problème.
Si je ne mets pas de commandes DDL dans le script, la restauration est effectuée correctement.
Donc le script :
set autocommit off
whenever SQLERROR EXIT ROLLBACK
insert into a values (1);
insert into a values (2);
insert into a values ('x');
commit;
œuvres.
Et si DDL est utilisé, en général, Oracle ne fournit pas de fonctionnalité de restauration.