2017-04-24 80 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