ORA-01403 (Aucune donnée trouvée) se produit lorsque votre requête ne renvoie rien et que vous essayez de la transmettre à la variable via INTO .
ORA-01422 (Trop de lignes) se produit lorsque votre requête renvoie plus d'une ligne que vous essayez d'adapter à INTO .
Vous gérez le no_data_found du premier SELECT requête mais vous ne gérez pas too_many_rows dès la première requête. Si votre premier SELECT la requête renvoie un no_data_found exception, il sera géré à partir de l'EXCEPTION , sinon s'il lance un too_many_rows exception qu'il échouera en tant que deuxième image.
Alors, où est le no_data_found une exception se passe-t-elle ? Probablement de votre deuxième SELECT requête.
Vous devez boucler le premier SELECT requête afin d'éviter un no_data_found ou un too_many_rows et assurez-vous que votre deuxième SELECT la requête renvoie toujours 1 ligne.