• 技术文章 >数据库 >Oracle

    oracle中有回滚吗

    长期闲置长期闲置2022-06-08 17:10:35原创216

    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'};

    例如:

    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;

    运行结果:

    29.png

    推荐教程:《Oracle视频教程

    以上就是oracle中有回滚吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle
    上一篇:oracle中when语句怎么用 下一篇:归纳总结Oracle查询执行计划
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• oracle的连接有全连接吗• 三种方法快速恢复误删oracle数据库• oracle中to_char方法怎么用• 怎么修改oracle数据库编码• oracle的数据库名是什么
    1/1

    PHP中文网