我有一个这样的查询:
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 is null
)。这甚至可能还是我应该只检查我的 PL/SQL 解决方案?
(甲骨文10g)