Oracle 11 - sqlplus - restauration de l'ensemble du script en cas d'erreur - comment?

Comment puis-je faire Oracle 11g restauration de l'ensemble de l'opération sur toute erreur dans inclus fichier SQL?

Le contenu du fichier est:

set autocommit off
whenever SQLERROR EXIT ROLLBACK

insert into a values (1);
insert into a values (2);

drop index PK_NOT_EXIST;

commit;

Et le fichier est inclus dans sqlplus session à l'aide de "@":

@error.sql

Comme prévu, le sqlplus la fin de la session et la sortie est

SQL> @error.sql
1 row created.
1 row created.
drop index PK_NOT_EXIST           *
ERROR at line 1:
ORA-01418: specified index does not exist
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Mais quand je re-lancer sqlplus alors le tableau a contient 2 dossiers qui signifie qu'il y a un commettre et pas un rollback à la sortie de sqlplus.

Je peux en quelque sorte la force sqlplus:

  1. arrêter le traitement de fichier en cas d'erreur,
  2. et restauration de l'ensemble de la transaction en cas d'erreur?

OriginalL'auteur Grzegorz | 2013-02-08