Проверка прекращается после обнаружения одной ошибки

Я хочу найти все ошибки для каждого введенного клиента, но проверка прекращается после обнаружения одной ошибки. Как мне заставить это пройти каждую проверку? Я хочу, чтобы одни и те же данные были введены в таблицу 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.

0 ответов

Другие вопросы по тегам