La opcion mas sencilla es que tengas una tabla base que contenga la secuencia completa (1, 2, 3, 4, 5, 6 ….). En ese caso:
SELECT num
FROM tabla_base
MINUS
SELECT num
FROM prueba
Otra opcion es usando funciones analíticas. Creo que LAG/LEAD pueden ayudar a encontrar los saltos en la secuencia.
select num,
lag(num, 1) over(order by num) num_prv,
num – lag(num, 1) over(order by num) diff
from
(
/* tabla base con 4 registros */
select 1 as num from dual
union
select 2 from dual
union
select 4 from dual
union
select 7 from dual
)
)
where diff >= 2
Y otra opcion es utilizando PL/SQL que retorne una coleccion con los valores faltantes.