pl/sql : 
             delete from trap_urrshis where type=trap_type and cycle>=vcycle_code_begin 
commit;
              update table ....
                  commit; 
              exception
                  when others then
                       ......我想问下,这个捕捉异常是怎样的,比如我delete 这边有异常了,会不会直接跳到异常处理这,还是接着继续处理update那如果我UPDATE有异常呢???另外:T-SQL 中  begin transaction;
                 rollback transaction;---可以回到transaction前,期间的语句都没COMMIT操作
                commit transaction; 现在我转换成PL/SQL 比如我  update table ....  然后COMMMIT。
                           到最后进行异常处理的时候 要回滚,能回的去吗??现在我手上的T-SQL很奇怪,它就在最后进行了异常判断 if @@error<>0不是每个DML语句都要进行判断的嘛,

解决方案 »

  1.   

    PL/SQL块里。一旦遇到异常,如果该单独语句无异常捕捉及处理块,则直接跳到最外层的exception。后面的语句将不会执行。至于到底是提交已做的工作还是回滚,根据你exception块里的指令来办。
      

  2.   


    dbms_output.put_line(SQLERRM(SQLCODE))
      

  3.   

    哪里有异常,立刻跳到异常处理
    BEGIN   
          insert   into   a   values(pvc2id);   
          COMMIT;       
        
      EXCEPTION   WHEN   OTHERS   THEN   
          ROLLBACK;   
      END;   
      

  4.   

    实际上就是根据那个SQLCODe来处理的...如果sqlcode = 0就代表更新成功了.
      

  5.   

    知道了,还得问下 现在T-SQL 里
    if @@error<>0 
    begin
               rollback transaction;
                  if @trapping_method='C'
                    begin
      update
                    end;  
    end;
    else
        update这边@@error=0 也就是没异常的时候 也要做个操作那在PL/SQL 
          exception
              when  normal (没异常的时候)
                  ....
              when   others (异常的时候)
                  .... 还能这样写啊?
      

  6.   

    没异常时你要做什么?尽管写在begin及exception 之间。
    exception 部分只管处理异常情况。
      

  7.   

    无异常时ORACLE就继续工作,此时你想干吗,就继续干。把该操作写在begin与exception的最后,K.O。其他交给ORACLE。
      

  8.   

    把该UPDATE语句写在begin与exception之间的最后一行,K.O。
    打完收工。
      

  9.   

    明白了。最后再确认下
             BEGIN
                UPDATE   COMMMIT;
                INSERT。。COMMMIT;
                DELETECOMMMIT;
                                。
                                。
     
             EXCEPTION 
               WHEN OTHERS 
                   ROLLBACK比如代码如上,比如说作到UPDATE   有异常  就会跳到末尾的EXCEPTION  然后ROLLBACK 是吗?
      

  10.   

    顺便说句,应该是:        EXCEPTION 
              WHEN OTHERS THEN
                  ROLLBACK;
      

  11.   

    额 呵呵  少打了个then  结分