한방에 다 나오는 쿼리를 말씀하시는 건지 특정값을 받았을 때 다음 값을 구하는 쿼리를 말씀하시는 건지 모르겠네요.
select replace(a||b,'@') val from (select chr(63 + level) a from dual connect by level <= 27) ,(select lpad(0 + level,2,'0') b from dual connect by level <= 99) order by a||b
with t as ( select lpad(:val,3,'@') val from dual ) select case when val = 'Z99' then '다음값없음' when substr(val,2) = '99' then chr(ascii(substr(val,1,1)) + 1) || '01' else replace(substr(val,1,1)||lpad(to_number(substr(val,2)) + 1,2,'0'),'@') end as val from t