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;