У меня есть таблица вроде этого:XML оракул выберите запрос
Type Root Description hierarchy_level
Event 1 Jump 1
Event 10 Dance 2
Event 2 Cough 1
Event 20 Sneeze 2
Event 21 Spin 2
Event 21 Run 3
Event 21 Walk 4
Я хочу, чтобы результат XML быть:
<Event
<child desc="Jump">
<grandchild desc="Dance"/>
</child>
<child desc="Cough">
<grandchild desc="Sneeze"/>
<grandchild desc="Spin">
<ggchild desc="Run">
<gggchild desc="Walk"/>
</ggchild>
</grandchild
</child>
</Event>
это то, что я придумал, но это не является динамическим
SELECT XMLELEMENT
("Event",
(
SELECT XMLAGG
(
XMLELEMENT
(
"CHILD",
XMLATTRIBUTES
(oc2.description as "desc"),
XMLFOREST
(
oc2.description as "desc"
)
)
)
FROM table1 OC2
WHERE OC2.CASE_CODE_TYPE = OC.CASE_CODE_TYPE
AND OC2.HIERARCHY_LEVEL =2
)
) AS "RESULT"
FROM table1 oc
WHERE oc.HIERARCHY_LEVEL = 1 and oc.TYPE = 'Event';
как вы можете видеть, у меня есть жесткий код иерархии_уровня, чтобы получить первого ребенка. теперь я не хочу делать это на любом другом уровне. потому что если у него 8, то я должен повторить 8 раз. Поэтому, если кто-то может помочь указать мне в правильном направлении, чтобы сделать эту динамику, я действительно ценю это.
Благодарим за помощь.
Загляните сюда, он должен вас начать: http://allthingsoracle.com/generating-xml-from-sql-and-pl-sql-part-1/ – Donal
извините Донал, я только что обновил вопрос, надеюсь это поможет вам помочь мне. Спасибо – user3731575
Какова связь между родителем и дочерним элементом - есть ли идентификатор столбца первичного ключа и столбец PARENT_ID или что-то связать родителя и ребенка? Как Снейдж знает, что это ребенок кашля? Если это динамическое, трудно сделать теги Grandchild, GGChild, G3Child, G4Child - это требование? Разве не достаточно, чтобы все теги назывались Child, но вложены друг в друга в иерархии? И последний вопрос: какая версия базы данных Oracle? –