oracle 存储过程事务使用断点回滚
create
or
replace
procedure
delete_exceed_bound(playtype
varchar2
, end07
varchar2
, end08
varchar2
)
is
begin
delete
lotterydate
where
lotterydate.playtype
=
playtype
and
lotterydate.lotterydate_name
>
end07
and
lotterydate.lotterydate_name
like
'
07%
'
;
delete
lotterydate
where
lotterydate.playtype
=
playtype
and
lotterydate.lotterydate_name
>
end08
and
lotterydate.lotterydate_name
like
'
08%
'
;
savepoint p1;
delete
province_sell_amounts
where
province_sell_amounts.play_no
=
playtype
and
province_sell_amounts.term
>
end07
and
province_sell_amounts.term
like
'
07%
'
;
delete
province_sell_amounts
where
province_sell_amounts.play_no
=
playtype
and
province_sell_amounts.term
>
end08
and
province_sell_amounts.term
like
'
08%
'
;
delete
province_winning_prize
where
province_winning_prize.play_no
=
playtype
and
province_winning_prize.term
>
end07
and
province_winning_prize.term
like
'
07%
'
;
delete
province_winning_prize
where
province_winning_prize.play_no
=
playtype
and
province_winning_prize.term
>
end08
and
province_winning_prize.term
like
'
08%
'
;
savepoint p2;
delete
condition_winning_prize
where
condition_winning_prize.play_no
=
playtype
and
condition_winning_prize.term
>
end07
and
condition_winning_prize.term
like
'
07%
'
;
delete
condition_winning_prize
where
condition_winning_prize.play_no
=
playtype
and
condition_winning_prize.term
>
end08
and
condition_winning_prize.term
like
'
08%
'
;
savepoint p3;
delete
open_result
where
open_result.play_no
=
playtype
and
open_result.term
>
end07
and
open_result.term
like
'
07%
'
;
delete
open_result
where
open_result.play_no
=
playtype
and
open_result.term
>
end08
and
open_result.term
like
'
08%
'
;
exception
when
others
then
dbms_output.put_line(sqlerrm);
rollback
to
savepoint p1;
end
delete_exceed_bound;
保存点(SAVEPOINT)
是事务
处理过程中的一个标志,与回滚命令
(ROLLBACK)
结合使用,主要的用途是允许用户将某一段处理回滚而不必回滚整个事务
。
如果定义了多个
savepoint
,当指定回滚到某个
savepoint
时,那么回滚操作将回滚这个
savepoint
后面的所有操作(即使后面可能标记了
N
个
savepoint
)。
在一段处理中定义了3个
savepoint
,从第2个
savepoint
回滚,后面的第3个标记的操作都将被回滚,如果不使用
ROLLBACK TO savepoint_name
而使用
ROLLBACK
,将会滚整个事务
处理。
分享到:
相关推荐
oracle 事务 回滚 存储过程 自用
oracle回滚段使用率过高之解决方法 推荐针对不同的情况有多种解决.
SQL 事务回滚解决回滚无效的情况 BEGIN TRY END TRY CAHTH
oracle 在java中的事务处理和异常回滚。 里面的类直接运行,需要把oracle的数据库连接改改就ok、
Springboot中事务的使用: 1、启动类加上@EnableTransactionManagement注解,开启事务...如果controller未开启事务,service中开始了事务,service成功执行,controller在之后的运行中出现异常(错误),不会自动回滚。
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
对Oracle数据库回滚日志的清理,删除不必要的日志文件。
花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...
主要介绍了SpringBoot事务使用及回滚实现代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1. 基于Aspectj实现动态数据源...6. 实现事务内切换数据源(支持原生Spring声明式事务哟,仅此一家),并支持多数据源事务回滚(有了它除了跨服务的事务你需要考虑分布式事务,其他都不需要,极大的减少了系统的复杂程度)
基于SpringBoot的轻量级redis事务回滚机制,使用栈和ThreadLocal记录业务链的redis操作,发生异常进行回滚,参考了阿里巴巴Seata AT模式的db回滚策略:补偿回滚,记录前镜像与当前操作语句,反向解析生成补偿动作。...
执行多条SQL语句对数据库进行操作,如果某个SQL语句执行中出错,那么要对之前的操作进行回滚,代码比较简单。
Spring/SpringMVC/MyBatis整合,可事务回滚
自己做的一个简单的spring运用实例,主要是关于事务回滚的一个小例子,希望对还在纠结事务回滚的童靴有点帮助。。。
oracle 创建表空间、回滚段、用户、表的详细语法
子线程任务发生异常,主线程事务如何回滚
对于回滚段出现异常,无法启动数据库的处理脚本
正在看的ORACLE教程是:Oracle回滚段的概念... 回滚段的作用 事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影
java 应用程序操作数据库实例,若出现sql异常则事务回滚。
数据库试验,关于事务的操作。关于事务的创建撤销,事务的回滚等基本操作练习。