首页数据库oracle里面的回滚是什么?

oracle里面的回滚是什么?

时间2024-03-22 03:39:04发布访客分类数据库浏览1212
导读:在这篇文章中我们会学习到关于“oracle里面的回滚是什么?”的知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望对大家学习或工作能有帮助。下面就请大家跟着小编的思路一起来学习一下吧。 oracle中有回滚,回滚用于撤销当前事...
在这篇文章中我们会学习到关于“oracle里面的回滚是什么?”的知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望对大家学习或工作能有帮助。下面就请大家跟着小编的思路一起来学习一下吧。

oracle中有回滚,回滚用于撤销当前事务或者有问题的事务,利用rollback方法即可完成事务的回滚,语法为“ROLLBACK [隐式关键字] [TO [SAVEPOINT] savepoint_name | FORCE 'string'} ; ”。

本教程操作环境:windows10系统、Oracle 12c版、Dell G3电脑。

oracle中有回滚吗

一、概念

在 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;
    

运行结果:



以上就是关于“oracle里面的回滚是什么?”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

oracle

若转载请注明出处: oracle里面的回滚是什么?
本文地址: https://pptw.com/jishu/649972.html
怎么使用oracle中instr方法呢? oracle11g的em打不开如何处理呢?

游客 回复需填写必要信息