我在 Oracle 11g 中有一个分层查询,可以将所有叶节点从树中取出,而且效果很好。但是,当我遍历我的叶节点时,我需要尝试分别捕获路径的每个部分。有没有办法做到这一点?修改我的查询或第二个查询?
非常感谢任何帮助!
这是我的查询:
select c.id,
c.superid,
c.name,
SYS_CONNECT_BY_PATH(c.name, '>>') as PathName
from mytable c
where c.activestatus =0 AND
c.id NOT IN(select distinct c2.superid from categorizations c2 where c2.superid IS NOT NULL)
start with c.superid IS NULL
connect by prior c.id = c.superid;
所以目前我得到一个输出,如:id,superid,name1,>>name1>>name2>>name3>>name
哪个好。但我试图以某种方式捕获每个节点名称(因为我需要以 XML 格式输出它)。
所以现在我的每个叶节点的 XML 看起来像
<Node1>
<Project>name</Project>
<PathName>>name1>>name2>>name3>>name</PathName>
</Node1>.
我希望能够以某种方式获得看起来像
<Node1>
<Project>name1
<Project>name2
<Project>name3
<Project>name</Project>
</Project>
</Project>
</Project>
<PathName>>name1>>name2>>name3>>name</PathName>
</Node1>
....或类似的东西,基本上我希望能够将我的树层次结构输出到 XML。