Проверка прекращается после обнаружения одной ошибки
Я хочу найти все ошибки для каждого введенного клиента, но проверка прекращается после обнаружения одной ошибки. Как мне заставить это пройти каждую проверку? Я хочу, чтобы одни и те же данные были введены в таблицу ERROR_AUDIT дважды, поэтому у второго клиента есть две ошибки, дублирующий номер клиента и неверный почтовый индекс.
100001 Ray Graduate 834 Meadowlink Льюисвилл TX
77777
100001 Jay Rade 834 Link Льюисвилл TX
777
-- check for duplicate cust_number
SELECT COUNT(*)
INTO v_count
FROM cust_entry
WHERE cust_number = t_tab(cur_cust).CUST_NUMBER;
--if current record exists, insert into the error_audit table
IF v_count > 0 THEN
INSERT INTO error_audit
VALUES('XML101', USER, SYSDATE, input_file, t_tab(cur_cust).CUST_NUMBER,
'Customer number already exists.');
V_VALID := 'N';
END IF;
IF LENGTH(t_tab(cur_cust).CUST_ZIP) < 4 THEN
INSERT INTO error_audit
VALUES('XML102', USER, SYSDATE, input_file, t_tab(cur_cust).CUST_NUMBER,
'Customer zipcode less than 4 digits.');
V_VALID := 'N';
END IF;
IF V_VALID = 'Y' THEN
INSERT INTO cust_entry
VALUES(t_tab(cur_cust).CUST_NUMBER, t_tab(cur_cust).CUST_NAME,
t_tab(cur_cust).CUST_ADDR, t_tab(cur_cust).CUST_CITY,
t_tab(cur_cust).CUST_STATE, t_tab(cur_cust).CUST_ZIP,
t_tab(cur_cust).CUST_PHONE, t_tab(cur_cust).CUST_BALANCE,
t_tab(cur_cust).CUST_CREDIT_LIMIT);
END IF;
V_VALID := 'Y'; -- This reinitializes the valid record switch.