l_counter := l_counter + 1;IF l_counter = c_commitcounter THEN --c_commitcounter每次提交的数量
    COMMIT;
    l_counter := 0;
END IF;--出错回滚,自己改改应该能用
EXCEPTION
      WHEN OTHERS
      THEN
         v_errorcode := SQLCODE;
         v_errormsg := SUBSTR (SQLERRM, 1, 2000);
         v_currentuser := USER;
         v_information :=
               'row_id='
            || TO_CHAR (id)
            || '. Error encoutered on '
            || TO_CHAR (SYSDATE, 'DD-MON-YY HH24:MI:SS')
            || ' by database user '
            || v_currentuser;
         ROLLBACK;
                INSERT INTO LOG_PROCESS_ERROR
                     ( ERROR_CODE, error_message,
                      error_info, id
                     )
              VALUES (v_errorcode, v_errormsg,
                      v_information, id
                     );         COMMIT;