2017-04-24 54 views
0

我最近了解了异常,并试图忽略一些异常。基本上,我想插入一定数量的行到一个新表中,而我正在做一段时间。有时,可能会插入重复的ID,所以我得到错误DUP_VAL_ON_INDEX。我投掷它,但我希望代码继续前进。我尝试过使用NULL,但它并不可悲。我正在使用SQL开发人员。代码是这样的:Pl SQL异常处理

while nr <= nr_rows 
loop 
insert_into_table_code; 
end loop; 

exception 
    when DUP_VAL_ON_INDEX then 
    nr:=nr-1; 
    NULL; 

虽然这不起作用,但它仍然停止执行代码。任何其他方式我可能继续?

回答

1

在循环内而不是循环外处理异常。伪代码:

while nr <= nr_rows 
loop 
    begin 
     insert_into_table_code; 
    exception 
     when DUP_VAL_ON_INDEX then 
      nr:=nr-1; 
    end; 
end loop; 
+0

谢谢!它完美的作品。 – Gimv13