Även om du har angett ett WHERE-villkor, skulle ett bättre sätt vara att hantera fall där posten inte hittas eller felet 'No Data Found'. Jag skulle skriva ovanstående kod med inslag av SELECT
uttalande med sin egen BEGIN/EXCEPTION/END
blockera.
Koden kan vara ungefär så här:
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;