Plsql Pl Sql异常处理

Plsql Pl Sql异常处理,plsql,Plsql,我最近学习了异常,我试图忽略一些异常。基本上,我想在一个新表中插入一定数量的行,我需要一段时间。有时,可能会插入一个重复的ID,因此,我在索引上得到错误DUP_VAL_。我正在抛出它,但我希望代码继续运行。我试过使用NULL,但很遗憾它不起作用。我使用的是SQLDeveloper。代码如下所示: while nr <= nr_rows loop insert_into_table_code; end loop; exception when DUP_VAL_ON_INDEX

我最近学习了异常,我试图忽略一些异常。基本上,我想在一个新表中插入一定数量的行,我需要一段时间。有时,可能会插入一个重复的ID,因此,我在索引上得到错误DUP_VAL_。我正在抛出它,但我希望代码继续运行。我试过使用NULL,但很遗憾它不起作用。我使用的是SQLDeveloper。代码如下所示:

 while nr <= nr_rows
 loop
 insert_into_table_code;
 end loop;

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

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

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

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