2022-07-14 511
oracle中有回滚吗
oracle中有回滚,回滚用于撤销当前事务或者有问题的事务,利用rollback方法即可完成事务的回滚
语法为
ROLLBACK [隐式关键字] [TO [SAVEPOINT] savepoint_name | FORCE 'string'};
一、概念
在 Oracle 中,rollback 用法与 commit 相反,是用来 撤销 当前事务或有问题的事务。
1.1 语法
ROLLBACK [WORK] [TO [SAVEPOINT] savepoint_name | FORCE 'string'};
例如:
work - 可选。隐式关键字,可写可不写。
to savepoint savepoint_name - 可选。rollback 语句撤销当前会话的全部更改,直到由 savepoint_name 指定的保存点。若是省略该子句,则全部更改都将被撤销。
force 'string - 可选'。用于 强制回滚 可能已损坏或有问题的事务。使用此子句,能够将单引号中的 事务id 指定为 字符串。能够在 系统视图 中找到名为 dba_2pc_pengding、v$corrupt_xid_list 的事务标识(没法将有问题的事务回滚到保存点。)
1.1 数据准备
DROP TABLE stu; -- if exists CREATE TABLE stu ( s_id NUMBER, s_xm VARCHAR2(30) ); ALTER TABLE stu ADD CONSTRAINTS pk_stu_id PRIMARY KEY(s_id);
二、savepoint
回滚到 最近 的 pointsql
DECLARE BEGIN INSERT INTO stu(s_id, s_xm) VALUES(1, '小游子'); SAVEPOINT ps1; INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子'); SAVEPOINT ps2; -- 若也是 ps1,则回滚至此处(最近) INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子'); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK TO ps1; dbms_output.put_line(SQLCODE ||' : '||SQLERRM); dbms_output.put_line(dbms_utility.format_error_backtrace); END;
原文链接:https://77isp.com/post/2007.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态