Obwohl Sie eine WHERE-Bedingung eingegeben haben, wäre es besser, den Fall eines nicht gefundenen Datensatzes oder des Fehlers „Keine Daten gefunden“ zu behandeln. Ich würde den obigen Code schreiben, indem ich den SELECT
umschließe Anweisung mit eigenem BEGIN/EXCEPTION/END
blockieren.
Code könnte in etwa so aussehen:
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;