Jag tror att SQL%NOTFOUND
returnerar true
när inga uppgifter hittas. Din IF
skulle utvärderas till sant i så fall, och skriv därför din put_line till terminal. SQL-satsen kördes framgångsrikt. Om du kör den SQL-satsen själv från kommandoraden kommer du att få 0 rader uppdaterade/raderade, inte ett Oracle-fel.
Om du vill ha ett undantag kan du använda RAISE
inuti din IF
och peka på undantaget i undantagsblocket du vill ha kastat.