关于事务处理控制语句
事务处理是 Oracle Database 将一个或多个 SQL 语句视为一个单元的序列:要么执行所有语句,要么不执行任何语句。对要求将多项操作作为一个单元执行的业务流程进行建模时,需要使用事务处理。
例如,当某位经理离开公司时,必须向 JOB_HISTORY 表中插入一行以显示该经理离职的时间,并且对于该经理的每个下级员工,必须更新 EMPLOYEES 表中 MANAGER_ID 的值。要在应用程序中对此过程进行建模,则必须将 INSERT 和 UPDATE 语句组合成单个事务处理。
基本的事务处理控制语句为 SAVEPOINT、COMMIT 和 ROLLBACK:
-
SAVEPOINT 可在事务处理中标记保存点,您可以稍后回退到此点。保存点是可选的,事务处理可以包含多个保存点。
-
COMMIT 将结束当前事务处理,使其更改成为永久更改,擦除保存点并释放锁。
-
ROLLBACK 可回退(撤消)当前整个事务处理,或仅回回退在指定保存点后所做的更改。
在 SQL*Plus 环境中,可以在 SQL> 提示符后输入事务处理控制语句。
在 SQL Developer 环境中,可以在工作表中输入事务处理控制语句。SQL Developer also has Commit Changes and Rollback Changes icons, which are explained in “Committing Transactions” and “Rolling Back Transactions”.
注意:
如果您未显式提交事务处理,而且程序异常终止,则数据库会自动回退上次未提交的事务处理。
由于此行为,在应用程序中通过提交或回退事务处理显式结束这些事务。
另请参见:
-
Oracle Database Concepts(了解有关事务处理管理的详细信息)
-
Oracle Database SQL Language Reference(了解有关事务处理控制语句的详细信息)