иерархический запрос в представлении (view)

Cristiano_Rivaldo
Дата: 20.10.2015 09:38:14
Всем привет.
Дано :
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 так как таблица будет очень большая и разбор каждого корня в момент запуска представления займет очень много времени. Т.е. подразумевается наличие индекса по полю отбора

Сам что-то пока не могу придумать как это реализовать...
Заранее спасибо.
JDS
Дата: 20.10.2015 10:05:41
Cristiano_Rivaldo
Сам что-то пока не могу придумать как это реализовать...

Вариант:
1) перед выполнением запроса к вьюшке задаешь значение, например глобальной переменной пакета или там контекст например
2) внутри вьюшки значение в start with достаешь из переменной, которую установил в п.1
Cristiano_Rivaldo
Дата: 20.10.2015 10:15:47
JDS,

Могут быть проблемы когда пользователь в одной сессии работает с несколькими входными параметрами для запроса одновременно. Т.е. открыл в клиенте два раздела (грида) и работает в них. Данные не правильные подтянуться при обновлении выборки одного из гридов.
В этом случае костыль еще тот будет...
JDS
Дата: 20.10.2015 10:33:18
Cristiano_Rivaldo, а написать вызовы к гридам, чтобы они динамически создавали уникальные для себя переменные контекста внутри сессии?
JDS
Дата: 20.10.2015 10:33:50
А. Вьюшка-то одна )
JDS
Дата: 20.10.2015 10:35:11
Такой вариант только если для каждого грида свою вьюшку )
Cristiano_Rivaldo
Дата: 20.10.2015 10:37:36
JDS,

Говорю же - костыль еще тот будет... :)
Мне кажется есть решение без использования переменных...
Elic
Дата: 20.10.2015 10:38:42
Cristiano_Rivaldo
В этом случае костыль еще тот будет...
Костыль - это та извилина, которая размечталась всё это реализовать через представление.

RTFM Overview of Table Functions
Cristiano_Rivaldo
Дата: 20.10.2015 10:42:28
Elic,

Нужно именно через представление.
ArtNick
Дата: 20.10.2015 10:49:41
Cristiano_Rivaldo
Elic,

Нужно именно через представление.

Слушай, дружище, если ты однозначно определил путь решения так и иди им, зачем тебе советы на форуме?
По поводу выбранного тобой пути: чушь несусветная.