用sub-block
(在你那个insert into前面加begin,后面加end)
procedure begin
....
<sub-block begin>
  begin
    insert into ..
    exception 
    when others then
      do you process()  
  end;
<sub-block end>
...
exception
end procedure;

解决方案 »

  1.   

    这是一种办法,都似乎不够优化这是我觉得最简单的例子——可以说只是用来测试的难道到说每一个插入、修改、或删除都要作为子程序么?那就太庞大了,把原本复杂的程序更加复杂化了有没有一个类似sql server中 @@error的全局变量,来记录操作的执行情况呢?
      

  2.   

    好象沒有 INSERT 的特殊例外處理
    不過你可以編寫一個自己的例外過程來實現
      

  3.   

    sqlcode 等同于 @@error但是如果发生错误,pl/sql仍旧抛出异常(控制转到exception段)在嵌入式sql里面可以使用whenever sqlerror continue来指示oracle不抛出异常,在pl/sql里面好像没有这种指示语句。
      

  4.   

    to baojianjun:我现在就是编写自己的例外处理程序,可是我的首先能够在insert 产生了例外并把处理权交给系统之前知道insert 执行失败,而我的问题就是这个意思!!to drabit及众高手:那我能有什么办法实现以上我说的么?
      

  5.   

    给楼主一个思路,本人也想了一段时间,可以用触发器实现你所述的功能
    create trigger a_tri
    before insert on a
    for each row
    begin
    ...
    end;
    /