Jeg tror på SQL%NOTFOUND returnerer true når der ikke findes nogen registreringer. Din IF ville vurdere til sand i så fald, og skriv derfor din put_line til terminal. SQL-sætningen blev udført. Hvis du udfører den SQL-sætning af sig selv fra kommandolinjen, vil du modtage 0 rækker opdateret/slettet, ikke en Oracle-fejl.
Hvis du vil have en undtagelse kastet, kan du bruge RAISE inde i din IF og peg på undtagelsen i den undtagelsesblok, du vil have kastet.