在触发器中一条select语句或update之后想通过sqlcode判断是否成功,但是实际上还没执行到sqlcode判断这,就已经出错了,尤其是selelct没有检索到数据也出错,这怎么整啊,没机会啊

解决方案 »

  1.   

    EXCEPTION
             /* This NO_DATA_FOUND is only from the SELECT. */
             WHEN NO_DATA_FOUND 
             THEN
                /*
                || Raise my exception to propagate to 
                || the main body of the function.
                */
                RAISE bad_data_in_select;“selelct没有检索到数据也出错”,这种错误可以通过上面的例子处理,也可以给sqlcode赋个特殊的值。
      

  2.   

    我不想让它到这来, 如果没有找到数据我就做别的处理, 如果是update怎么办哪
      

  3.   

    oracle触发器和存储过程,在你执行select时,如果取出的数据是null,你不加以判断并赋初始值的话,就会停止不向下执行了
    所以你要加一些判断,if  变量 is null then 变量:= 0 或'';这样就可以正常执行了
      

  4.   


    使用嵌套的begin exception end;
    例子:
    declare
    ....
    begin
     ...
     begin
       ....
     exception
       ...
     end;
     ...
    exception
    ....
    end;
    /
      

  5.   

    同楼上的解决方法同!
    使用嵌套的begin exception end;