У меня есть такой запрос:
select data_name
into v_name
from data_table
where data_table.type = v_t_id
Обычно этот запрос должен возвращать ровно одну строку. Когда нет совпадений на v_t_id
, программа завершается с ошибкой «Данные не найдены».
Я знаю, что мог бы обработать это в PL / SQL, но мне было интересно, есть способ сделать это только в запросе. В качестве теста я пробовал:
select case
when subq.data_name is null then
'UNKNOWN'
else
subq.data_name
end
from (select data_name
from data_table
where data_table.type = '53' /*53 does not exist, will result in 0 rows. Need fix this...*/
) subq;
... но это, очевидно, не сработает (поскольку subq
пустой - это не то же самое, что subq.data_name имеет значение null
). Возможно ли это вообще, или мне просто нужно проверить свое решение PL / SQL?
(oracle 10g)