발견 할 데이터가 없습니다 경우에도 쿼리는 항상 정확히 하나의 행을 반환 받기 :오라클 :이 같은 쿼리가
select data_name
into v_name
from data_table
where data_table.type = v_t_id
일반적으로는,이 쿼리는 정확히 하나의 행을 반환해야합니다. v_t_id
에 일치 항목이 없으면 "데이터 없음"예외로 프로그램이 실패합니다.
나는 을 알고 있습니다.은 PL/SQL에서 이것을 처리 할 수 있지만, 쿼리에서만이 작업을 수행 할 수 있는지 궁금합니다. (subq
이 비어있는 것은 subq.data_name is null
와 동일하지 않기 때문에)
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;
을 ... 그러나 이것은 분명히 작동하지 않습니다 테스트, 나는 시도했습니다. 이것도 가능합니까 아니면 그냥 PL/SQL 솔루션을 체크인해야합니까?
(오라클 10g)
쿼리가 행을 반환하지 않으면 어떤 값을 가질 것으로 기대합니까? 데이터를 찾을 수없는 상태를 처리해야하는 과제입니다. –
@ 토마스 :이 시나리오에서는 "UNKNOWN"문자열이 정상적으로 작동합니다. – FrustratedWithFormsDesigner