Я пытаюсь выполнить итерацию функции вставки таблицы сотрудников. Когда я пытаюсь выполнить код, он не запрашивает ввод более одного раза.
вот мой код
DECLARE
l_counter NUMBER := 0;
return_message VARCHAR2(100);
is_exit int;
--want_to_continue number;
emp_name VARCHAR2(70);--:='&f_name';
sur_name VARCHAR2(70);--:='&l_name';
dob VARCHAR2(70);--:='&birth_date';
personalid INT;--:=&per_id;
BEGIN
WHILE l_counter > -1
LOOP
emp_name :='&f_name';
sur_name :='&l_name';
dob :='&birth_date';
personalid :='&per_id';
return_message := fn_Insert_Employees(emp_name, sur_name, to_date(dob, 'YYYY-MM-DD'), personalid);
COMMIT;
l_counter := l_counter + 1;
END LOOP;
END;
Ошибка нарушения первичного ключа возникает при выполнении указанного выше блока кода. Подробное сообщение об ошибке приведено ниже
Отчет об ошибке - ORA-00001: уникальное ограничение (SYS.SYS_C007404) нарушено ORA-06512: в «SYS.FN_INSERT_EMPLOYEES», строка 12 ORA-06512: в строке 21 00001. 00000 - «уникальное ограничение (% s.% S) нарушено» * Причина: оператор UPDATE или INSERT попытался вставить дубликат ключа. Для Trusted Oracle, настроенного в режиме СУБД MA C, вы можете увидеть это сообщение, если дублирующаяся запись существует на другом уровне. * Действие: либо удалите уникальное ограничение, либо не вставляйте ключ.
Я полагаю, что приведенный выше код просто повторно использует входные значения в следующей итерации.
Пожалуйста, помогите мне получить входные переменные итерации.