Você poderia usar:
WHERE ROWNUM <= :NUM
...mas a tabela deve conter uma linha igual ou maior ao limite na variável de ligação. Este link demonstra várias técnicas de geração de número de linha no Oracle .
Usando
CONNECT BY
, Oracle 10g+:SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= :NUM
Confirmado por
monojohnny
que a variável de ligação pode ser usada. Tenta executar no Oracle 9i, embora CONNECT BY
sintaxe é suportada resulta em um erro ORA-01436. A única coisa em que não estou 100% é se o CONNECT BY aceitará o limite da variável de ligação.
Referência: