本站不再更新,欢迎光临 java开发技术网
随笔-230  评论-230  文章-8  trackbacks-0
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后面的所有操作(即使后面可能标记了Nsavepoint)。

在一段处理中定义了3个savepoint,从第2个savepoint回滚,后面的第3个标记的操作都将被回滚,如果不使用ROLLBACK TO savepoint_name而使用ROLLBACK,将会滚整个事务处理。

posted on 2008-06-24 16:41 有猫相伴的日子 阅读(4220) 评论(3)  编辑  收藏 所属分类: pl/sql

评论:
# re: oracle 存储过程事务使用断点回滚 2009-12-30 14:13 | 张_斌
学习了!  回复  更多评论
  
# re: oracle 存储过程事务使用断点回滚[未登录] 2010-06-25 17:38 | AK
update 怎么就不能设置 保存点呢?  回复  更多评论
  
# re: oracle 存储过程事务使用断点回滚 2012-12-08 11:45 | 11
11  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
本站不再更新,欢迎光临 java开发技术网