ORA-01403 (Nessun dato trovato) si verifica quando la tua query non restituisce nulla e provi a passarla alla variabile tramite INTO .
ORA-01422 (Troppe righe) si verifica quando la tua query restituisce più di 1 riga che stai cercando di adattare a INTO .
Stai gestendo il no_data_found dal primo SELECT query ma non stai gestendo too_many_rows dalla prima domanda. Se il tuo primo SELECT query genera un no_data_found eccezione, sarà gestita da EXCEPTION , altrimenti se genera un too_many_rows eccezione che non riuscirà come seconda immagine.
Allora, dov'è il no_data_found eccezione accade? Probabilmente da te secondo SELECT interrogazione.
Dovresti eseguire il ciclo del primo SELECT query per evitare un no_data_found o un too_many_rows e assicurati che il tuo secondo SELECT query restituisce sempre 1 riga.