Mặc dù bạn đã đặt điều kiện WHERE, nhưng cách tốt hơn sẽ là xử lý trường hợp không tìm thấy bản ghi hoặc lỗi 'Không tìm thấy dữ liệu'. Tôi sẽ viết đoạn mã trên với việc bao bọc SELECT câu lệnh có BEGIN/EXCEPTION/END của riêng nó khối.
Mã có thể là một cái gì đó như thế này:
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;