Możesz użyć:
WHERE ROWNUM <= :NUM
...ale tabela musi zawierać wiersz równy lub większy od limitu w zmiennej bind. Ten link przedstawia różne techniki generowania numerów wierszy w Oracle .
Korzystanie z CONNECT BY
, Oracle 10g+:
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= :NUM
Potwierdzone przez monojohnny
że można użyć zmiennej bind. Próbuje uruchomić na Oracle 9i, chociaż CONNECT BY
obsługiwana składnia powoduje błąd ORA-01436.
Jedyną rzeczą, na którą nie jestem w 100%, jest to, czy CONNECT BY zaakceptuje limit ze zmiennej bind.
Odniesienie: