oracle中有没有像java finally一样的关键字啊。就是无论什么都执行。
比如,我有一张表中有数据,我要删除表中的数据,在存储过程中。做了一系列的操作后,我要删除数据即使是有异常,也要删除。

解决方案 »

  1.   

    没有,你可以写在异常处理里面begindo finally;
    exception
    when .. then
    do finally;
    end;
      

  2.   

    这样可以吗??
    那在异常块里do finally;的时候不是会再次引发异常吗?
      

  3.   

    那真悲剧了,如果finally那步也错的话java中少有对finally做catch,如果做的话,那在Pl/sql中的代码看起来就会是像这样:begin
      do some;
      do finally;
    exception
      begin
        do finally;
      exception 
        ...
      end;
    end;
      

  4.   


    java中的finally 也经常try catch的,特别是在关闭数据库连接、文件流等对象的时候。