PL/SQL 的 事务处理

本文详细介绍了SQL事务处理的基本概念、操作流程以及异常处理机制。通过实例演示了如何在SQL事务中进行数据插入、查询及回滚操作,并对异常情况进行了处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BEGIN 

DECLARE   

       V_COUNT    INTEGER; -- 表中记录的行数  
       V_INT_VAL   MY_TEST.ONLY_INT%TYPE; -- 使用%TYPE关键字参照某表某字段类型声明变量  
BEGIN  
      V_INT_VAL := 123456;  
      -- 插入一条正确的数据  
      INSERT INTO MY_TEST VALUES ('TEST_SUCCESS', V_INT_VAL);  
      -- 查询条数为1条,我们发现插入成功了  
      SELECT COUNT(*) INTO V_COUNT FROM MY_TEST;  
      DBMS_OUTPUT.put_line('MY_TEST表中有' || V_COUNT || '条记录');  
 
       -- 插入一条错误的数据,因为第二个字段为int型,插入字符数据肯定会出错  
       INSERT INTO MY_TEST VALUES ('TEST_FAIL', 'ABC');  
 
        -- 最后提交更改  
        COMMIT;  
EXCEPTION  
        -- 异常处理  
        WHEN OTHERS THEN  
                  ROLLBACK; -- 异常时回滚,这样第一次插入的正确数据也不会保存到数据库  
                  DBMS_OUTPUT.put_line('[PL/SQL 事务]中出现异常,错误代码:ORA' || sqlcode);  
         -- 我们验证一下表里的数据为0条  
         SELECT COUNT(*) INTO V_COUNT FROM MY_TEST;  
          DBMS_OUTPUT.put_line('回滚后,MY_TEST表中有' || V_COUNT || '条记录');  
END; -- 可执行语句结束  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值