rownum =1も使用する場合は、COUNT(*)を使用しても問題ありません:
declare
l_cnt integer;
begin
select count(*)
into l_cnt
from x
where x.col_a = value_a
and x.col_b = value_b
and rownum = 1;
end;
これは常に行を返すため、NO_DATA_FOUND例外を処理する必要はありません。 l_cntの値は0(行なし)または1(少なくとも1行存在)になります。