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 ред.