В моем коде я ввожу зарплату, которая недоступна в таблице сотрудников, а затем снова вставляю дубликат employee_id в столбце первичного ключа таблицы employee в блоке исключений, где я обрабатываю исключение, исключенное данными, но я не понимаю, почему исключение No data found
в конец тоже?Исключение no_data_found также распространяется на внешний блок?
ВЫХОД приходит:
Enter some other sal
ORA-01400: cannot insert NULL into ("SCOTT"."EMPLOYEES"."LAST_NAME")
ORA-01403: no data found --This should not come according to logic
Это код:
DECLARE
v_sal number:=&p_sal;
v_num number;
BEGIN
BEGIN
select salary INTO v_num from employees where salary=v_sal;
EXCEPTION
WHEN no_data_found THEN
DBMS_OUTPUT.PUT_LINE('Enter some other sal');
INSERT INTO employees (employee_id)values(100) ;
END;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(sqlerrm);
END;
Технически ваше первоначальное исключение не было обработано, оно забросило еще одно исключение. Это кажется мне ожидаемым поведением. – David