Selvom du har sat en WHERE-betingelse, ville en bedre måde være at håndtere tilfælde af registrering, der ikke blev fundet eller fejlen 'Ingen data fundet'. Jeg ville skrive ovenstående kode med indpakning af SELECT
sætning med sin egen BEGIN/EXCEPTION/END
blokere.
Koden kunne være sådan her:
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;