以下是代码概述:
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行有错误。程序在读取错误行后立即停止,使其旁边的其他行不被评估/读取。我的目标是在它进入异常之后,它将输出该行并继续阅读其他行。那么如果它转到异常,我怎么回到循环呢?
答案 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;