Je crois que SQL%NOTFOUND
renvoie true
lorsqu'aucun enregistrement n'est trouvé. Votre IF
serait évalué à true dans ce cas, et écrirait donc votre put_line au terminal. L'instruction SQL s'est exécutée avec succès. Si vous exécutez cette instruction SQL par elle-même à partir de la ligne de commande, vous recevrez 0 lignes mises à jour/supprimées, pas une erreur Oracle.
Si vous voulez qu'une exception soit levée, vous pouvez utiliser RAISE
dans votre IF
et pointez-le vers l'exception dans le bloc d'exception que vous souhaitez lancer.