首页 > 解决方案 > 在循环运行时处理 plsql 块中的异常

问题描述

我有一个要求,我需要在一个循环中删除多个表的分区。如果由于某种原因该分区在表中不存在,则整个过程都会出错。但是我想删除其他表中存在的其他分区而不退出循环

标签: oracleloopsexceptionplsql

解决方案


使用内部 begin-exception-end 块(“内部”表示“在循环内”)。像这样的东西:

begin
  for cur_r in (select whatever from ...) loop

    -- inner block begins here
    begin
      do stuff here
    exception
      when ... then ...
    end;
    -- inner block ends here

  end loop;
end;

推荐阅读