Pl Sql异常处理

时间:2017-04-24 20:44:02

标签: plsql

我最近了解了异常,我试图忽略一些异常。基本上,我想在一个新表中插入一定数量的行,而我正在做一段时间。有时,可能会插入重复的ID,因此,我收到错误DUP_VAL_ON_INDEX。我正在扔它,但我希望代码继续下去。我尝试过使用NULL,但它不能令人遗憾地工作。我正在使用sql developer。代码是这样的:

 while nr <= nr_rows
 loop
 insert_into_table_code;
 end loop;

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

虽然这不起作用......它仍然会停止执行代码。还有其他方法可以继续吗?

1 个答案:

答案 0 :(得分:1)

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

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