Hoewel u een WHERE-voorwaarde hebt ingevoerd, is het een betere manier om het geval van record niet gevonden of de fout 'Geen gegevens gevonden' af te handelen. Ik zou bovenstaande code schrijven met de SELECT
statement met zijn eigen BEGIN/EXCEPTION/END
blok.
Code zou er ongeveer zo uit kunnen zien:
BEGIN
SELECT trim(name)
INTO fullName
FROM (
SELECT n.name
FROM directory dir, store n
WHERE dir.name = n.name
AND dir.STATUS NOT IN ('F','L','M')
ORDER BY n.imp, dir.date
)
WHERE rownum <= 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
fullName := NULL;
END;