Anda membuat Prosedur PL/SQL di Oracle di mana Anda melakukan pemrosesan saat mengulang kursor dan jika ada kesalahan (pengecualian) yang muncul maka Anda tidak ingin membatalkan pemrosesan tetapi Anda ingin mencatat kesalahan dan melanjutkan pemrosesan.
Di bawah ini adalah contoh yang diberikan untuk menangani kondisi tersebut, di mana saya telah membuat dua bagian pengecualian, yang pertama untuk menangani kesalahan saat loop kursor dan yang lainnya untuk menangani pengecualian di luar loop kursor.
SET SERVEROUTPUT ON; DECLARE CURSOR c_emp IS SELECT ROWNUM, empno, ename FROM emp; vn NUMBER; vsqlcode VARCHAR2 (20); vsqlerrm VARCHAR2 (4000); BEGIN FOR c IN c_emp LOOP BEGIN IF c.ROWNUM = 3 THEN -- Generate an error at line 3 vn := 'x'; END IF; EXCEPTION WHEN OTHERS THEN vsqlcode := SQLCODE; vsqlerrm := SQLERRM; INSERT INTO error_log (error_no, ERROR_TEXT) VALUES (vsqlcode, vsqlerrm); END; END LOOP; COMMIT; EXCEPTION WHEN OTHERS THEN vsqlcode := SQLCODE; vsqlerrm := SQLERRM; ROLLBACK; INSERT INTO error_log (error_no, ERROR_TEXT) VALUES (vsqlcode, vsqlerrm); Commit; END;