如何在包含的SQL文件中的任何错误上使Oracle 11g回滚整个事务?
文件内容是:
set autocommit off
whenever SQLERROR EXIT ROLLBACK
insert into a values (1);
insert into a values (2);
drop index PK_NOT_EXIST;
commit;
并使用“@”将文件包含在sqlplus会话中:
@error.sql
正如预期的那样,sqlplus会话终止,输出结束
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
但是当我重新启动sqlplus时,表a包含2条记录,这意味着在退出sqlplus时有一个提交而不是回滚.
我可以以某种方式强制sqlplus:
>出错时停止处理文件,
>并在出错时回滚整个交易?