ORA-01403 (Inga data hittades) händer när din fråga inte returnerar något och du försöker skicka den till variabel via INTO .
ORA-01422 (För många rader) händer när din fråga returnerar mer än 1 rad som du försöker få plats på INTO .
Du hanterar no_data_found från den första SELECT fråga men du hanterar inte too_many_rows från den första frågan. Om din första SELECT fråga kastar en no_data_found undantag, kommer det att hanteras från EXCEPTION , annars om den kastar en too_many_rows undantag än det kommer att misslyckas som din andra bild.
Så var är no_data_found händer undantag? Förmodligen från din andra SELECT fråga.
Du bör loopa den första SELECT fråga för att undvika en no_data_found eller en too_many_rows och se till att din andra SELECT fråga returnerar alltid 1 rad.