我的oracle是10g一个update语句之后,commit,我这个时候需要对事务失败进行rollback操作。大体架构是这样的:update tb set  ....--这里update语句是执行批量操作
commit;exception 
  when others then--在这里如何我如何准确判断update事务失败呢,又啥条件可以直接判断是update语句引起的必须要回滚呢?
     rollback;
     insert into exception_tb ......
     return;我知道有个sqlcode,但是不知道sqlcode如何用,还有没有别的方法准确知道是update语句失败,必须要回滚呢?
  

解决方案 »

  1.   

    sqlcode应该是用来判断你错误是属于那种错误!
    上面你的自己写的语句就可以了!
      

  2.   

    sqlcode在你这里基本上没有太大作用了,因为你在这里exception以后没有复杂的处理逻辑。
      

  3.   

    把异常部分代码换成如下:
    EXCEPTION
           WHEN OTHERS THEN
               DBMS_OUTPUT.PUT_LINE(SQLERRM(SQLCODE));
    END;
      

  4.   

    sqlcode 只是作为一个异常的参考,没啥大用。exception  就直接指向异常,在这里rollback,不过,要兼顾一下no data found 的异常。
      

  5.   

    为了保持一致性,最后才commit一次就行了如果有异常,在exception里面rollback