Всем привет.
Дано :
with t
as
(select 1 ID,null PARENT_ID, 'A' CODE
from dual
union all
select 2 ID,1 PARENT_ID, 'B' CODE
from dual
union all
select 3 ID,2 PARENT_ID, 'C' CODE
from dual
union all
select 4 ID,3 PARENT_ID, 'D' CODE
from dual
)
select CODE
from t
Необходимо создать представление (view) с иерархическим запросом внутри, выводящий все ветки корня по заданному условию. .
Например
select CODE,CODE_R,LEVEL from VIEW_TEST where CODE = 'A'
>
1 A A 1
2 A B 2
3 A C 3
4 A D 4
select CODE,CODE_R,LEVEL from VIEW_TEST where CODE = 'B'
>
1 B B 1
2 B C 2
3 B D 3
и т.д.
Есть один нюанс - представление, наверное, должно содержать конструкцию start with так как таблица будет очень большая и разбор каждого корня в момент запуска представления займет очень много времени. Т.е. подразумевается наличие индекса по полю отбора
Сам что-то пока не могу придумать как это реализовать...
Заранее спасибо.