get_ancestors (rekursivt) fra hierarki
Jeg har en træstruktur, hvor parent_id refererer til id og derved danner en træstruktur hvor roden af strukturen er NULL, dvs a la:id | parent_id
================
100 | NULL
200 | 100
300 | 100
400 | 300
500 | 300
600 | 500
700 | 200
800 | 600
Dvs.:
100
200
700
300
400
500
600
800
Vi vil hente alle ancestors (alle dem der er under) i hierarkiet ved at sende et id til PL/SQL, dvs. sendes 300 fås alle under den = 400,500,600,800.
Noget a la:
DECLARE
r tblstructure%ROWTYPE;
counter BOOLEAN := TRUE;
nextOne INTEGER;
BEGIN
nextOne := $1;
WHILE counter LOOP
SELECT * INTO r FROM tblstructure WHERE parent_id=nextOne;
nextOne := r.festivalorganisation_id;
RETURN NEXT r;
END LOOP;
RETURN;
END
'
Er det overhoved muligt at lave det rekursivt ?