commint和rollback 分别用在什么位置?rollback一般是用在exception中吗?可以探讨一下!

解决方案 »

  1.   

    可以。在过程里经常的做法
    procedure pr_ (x in varchar) as
    begin
      --xxxxxxxxxx
      commit;
    exception
      when other then
         rollback;
    end pr_;
      

  2.   

    create or replace procedure pr_ (x in varchar) as
    begin
    --xxxxxxxxxx
    commit;
    exception
    when others then
    rollback;
    end pr_;
      

  3.   

    那就是说rollback一般情况下就是放在exception下了!只有在出现异常的情况下才要回滚?还有就是commit和rollback是不是总是成对出现的啊?
      

  4.   

    有时候rollback也会出现在begin块里面,要看具体业务需要
      

  5.   

    那在存储过程中的最后"/",这个反斜杠是和commit的作用一样吗?还是有其他的作用,请详细说明!!!
      

  6.   

    存储过程中的最后一个/是执行缓冲区内容的意思. PL/SQL-procedure执行中DML是自动提交的,所以可以不使用显示的commit.
      

  7.   

    在PL/SQL中DML什么时候自动提交了?没听说过,就知道在ms sql里默认是这样的,oracle里没听说啊!最后的/是执行的意思,但是commit和rollback并不能说是绝对用在哪里,楼上举的例子是一般情况,建议楼主了解一下commit和rollback的功能和机制!