Подключиться в HSQL DB

Я писал тестовые случаи для запроса, который использует соединение по иерархическому предложению. Кажется, что в HSQL Db нет поддержки этого предложения.

Есть ли альтернативы для тестирования запроса или написания другого запроса, который делает то же самое.

Запрос прост

SELECT seq.nextval
FROM DUAL
CONNECT BY level <= ?

Благодарю.

2 ответа

Вам не нужен рекурсивный запрос для этого.

Для генерации последовательности чисел вы можете использовать sequence_array

select * 
from unnest(sequence_array(1, ?, 1))

Более подробная информация в руководстве:
http://hsqldb.org/doc/2.0/guide/builtinfunctions-chapt.html

Если вам нужно продвинуть последовательность на определенное количество записей, вы можете использовать что-то вроде этого:

select NEXT VALUE FOR seq
from unnest(sequence_array(1, 20, 1));

Если вам нужно установить последовательность в новое значение, это намного проще в HSQLDB:

ALTER SEQUENCE seq restart with 42;

Если вы ищете рекурсивный запрос, то HSQLDB поддерживает стандарт ANSI SQL для этого: рекурсивные общие табличные выражения, которые описаны в руководстве:
http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html

Согласно этому 2-летнему билету, только Oracle и база данных с именем CUBRID имеют возможность CONNECT BY. Если вы действительно этого хотите, возможно, вы могли бы проголосовать за билет. Однако, насколько я могу судить, над проектом работают только два человека, так что не затаив дыхание.

Другие вопросы по тегам