Это Польдо, венецианец.
Собственно, все подробно описано в release notes, главное не забывать, что определение CTE должно быть частью основного запроса, то есть должно быть внутри конструкции for select... do... перед основным select'ом.
CREATE OR ALTER PROCEDURE TEST_TREE_WALK
RETURNS (FLD_NAME TYPE OF DOM_OBJECT_NAME)
AS
BEGIN
FOR
/********** declare common table expression ****************************/
WITH RECURSIVE group_tree AS
(
/**************** none-recursive part, select 'root' entries *************/
SELECT fld_id, pfld_arent_id, fld_name, CAST('' AS VARCHAR(255)) AS indent
FROM tbl_groups WHERE fld_parent_id = -1
/*************************************************************************/
UNION ALL
/****** recursive part *************************************************/
SELECT g.fld_id, g.fld_parent_id, g.fld_name, h.indent || RPAD('', 2)
FROM tbl_groups g JOIN group_tree h ON g.fld_parent_id = h.fld_id
)
/***** main query from declared CTE *************************************/
SELECT indent || fld_name
FROM group_tree
INTO :fld_name
DO
BEGIN
SUSPEND;
END
END
Il sore 24 ore пишет
Софт для конфигурирования адаптера ethernet/RS485 K.04.12. Называется GK3Tools
