ORA-01403 (Няма намерени данни) се случва, когато заявката ви не върне нищо и се опитате да я предадете на променлива чрез INTO .
ORA-01422 (Твърде много редове) се случва, когато заявката ви върне повече от 1 ред, който се опитвате да поберете в INTO .
Вие управлявате no_data_found от първия SELECT заявка, но не обработвате too_many_rows от първото запитване. Ако първият ви SELECT заявката хвърля no_data_found изключение, то ще бъде обработено от EXCEPTION , в противен случай, ако хвърли too_many_rows изключение, отколкото ще се провали като второ изображение.
И така, къде е no_data_found случва ли се изключение? Вероятно от вашия втори SELECT заявка.
Трябва да повторите първия SELECT заявка, за да избегнете no_data_found или too_many_rows и се уверете, че вашият втори SELECT заявката винаги връща 1 ред.