Можете да използвате:
WHERE ROWNUM <= :NUM
... но таблицата трябва да съдържа ред, равен или по-голям от ограничението в променливата за свързване. Тази връзка демонстрира различни техники за генериране на номера на редове в Oracle .
Използване на CONNECT BY
, Oracle 10g+:
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= :NUM
Потвърдено от monojohnny
че свързващата променлива може да се използва. Опитва се да работи на Oracle 9i, въпреки че CONNECT BY
синтаксисът се поддържа води до грешка ORA-01436.
Единственото нещо, за което не съм 100% е дали CONNECT BY ще приеме ограничението от променливата за свързване.
Справка: