Подключиться в 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. Если вы действительно этого хотите, возможно, вы могли бы проголосовать за билет. Однако, насколько я могу судить, над проектом работают только два человека, так что не затаив дыхание.