即使在PL / SQL中发生异常,也要继续循环读取excel行

时间:2014-08-22 08:56:02

标签: oracle loops exception plsql

以下是代码概述:

PROCEDURE

BEGIN
  WHILE LOOP --loop each row
    --Read each row and add in table
    COMMIT;
  END LOOP;
EXCEPTION
  WHEN OTHERS
    --log error
    ROLLBACK;
END;

Ex:共有5行。第3行有错误。程序在读取错误行后立即停止,使其旁边的其他行不被评估/读取。我的目标是在它进入异常之后,它将输出该行并继续阅读其他行。那么如果它转到异常,我怎么回到循环呢?

2 个答案:

答案 0 :(得分:0)

试试这个,然后你只会在内部匿名块中缓存错误:

PROCEDURE

BEGIN
  WHILE LOOP --loop each row
    BEGIN
      --Read each row and add in table
      COMMIT;
    EXCEPTION
      WHEN OTHERS
        --log error
        ROLLBACK;
    END;
  END LOOP;

END;

答案 1 :(得分:-1)

尝试在循环中使用独立的PL / SQL块。

BEGIN
      WHILE LOOP --loop each row
        BEGIN
        --Read each row and add in table
        COMMIT;
            EXCEPTION --Catch the exception here and print the data and it will move on
        END;
      END LOOP;
    EXCEPTION
      WHEN OTHERS
        --log error
        ROLLBACK;
    END;