У меня есть определение таблиц ниже. Поскольку мне нужно игнорировать непосредственного родителя, который имеет тип 'Package', в таблицах также могут существовать другие типы.
Например, когда я передаю CHILD_NODE_ID = 3289374 в запросом, непосредственный parent_id - 3289375, но он относится к типу «Папка», поэтому игнорируется его в самом иерархическом запросе, а следующий родительский идентификатор 3289376, имеющий тип «Пакет», также должен игнорироваться в наборе результатов в соответствии с моим требованием.
Меня интересуют только типы пакетов. Мой запрос также будет извлекать только типы пакетов, но при этом не игнорируется непосредственный родительский тип типа "Пакет".
Иерархический запрос должен рекурсивно проверять только типы пакетов и производить окончательный результат как «3289373».
CHILD_NODE
******************
ID PARENT_NODE_ID CHILD_NODE_ID ISBN
2314861 3289375 3289374 9780838474648
2314862 3289376 3289375 folder_name
2314863 3289373 3289376 9780838473559
2314864 1271271 3289373 9780838441473
NODE
***********
ID Type
3289374 Package
3289375 Folder
3289376 Package
3289373 Package
SELECT *
FROM CHILD_NODE c, NODE n
WHERE
c.CHILD_NODE_ID=N.ID AND
N.TYPE='Package'
START WITH CHILD_NODE_ID=3289374
CONNECT BY PRIOR PARENT_NODE_ID = CHILD_NODE_ID