EXECUTE BLOCK (ID INTEGER = :ID)
RETURNS(Path VARCHAR(8192))
AS
BEGIN
Path = '';
WHILE (:ID IS DISTINCT FROM NULL) DO
BEGIN
SELECT name || '\' || :Path, parent
FROM gd_contact
WHERE id = :ID
INTO :Path, :ID;
END
Path = SUBSTRING(:Path FROM 1
FOR CHARACTER_LENGTH(:Path) - 1);
SUSPEND;
END
21 дек. 2012 г.
Путь к элементу дерева через EXECUTE BLOCK
Раньше уже обсуждалось использование рекурсивного CTE для получения пути к элементу древовидной иерархии. То же самое можно сделать и без CTE с использованием конструкции EXECUTE BLOCK:
Комментариев нет:
Отправить комментарий