Объявите функцию, которая не возвращается в Scala

Это не связано с CONNECT BY, а с артефактом вашего неправильного использования ROWNUM.

Чтобы процитировать из документацию :

Для каждой строки, возвращаемой запросом, псевдоколонка ROWNUM возвращает номер, указывающий порядок, в котором Oracle выбирает строку из таблицы или набора соединенных строк. Первая выбранная строка имеет ROWNUM из 1, вторая имеет 2 и т. Д.

ROWNUM является фактором набора результатов, а не запроса. Хотя они связаны, они не совсем одинаковы; 6-й результат невозможен, если первый не имеет значения.

Это также объясняется в документации:

Проверка условий для значений ROWNUM больше положительного integer всегда false. Например, этот запрос не возвращает строк:

SELECT *
  FROM employees
  WHERE ROWNUM > 1;

В первой строке присваивается ROWNUM из 1 и делает условие ложным. Вторая строка, которая будет выбрана, теперь является первой строкой и также назначается ROWNUM из 1 и делает условие ложным. Все строки впоследствии не удовлетворяют условию, поэтому строки не возвращаются.

14
задан zrzka 30 August 2019 в 06:26
поделиться