0

Oracle 11g には、ツリーからすべてのリーフ ノードを取得する階層クエリがあり、うまく機能します。ただし、リーフ ノードに移動する際に、パスの各部分を個別にキャプチャする必要があります。それを行う方法はありますか?私のクエリまたは2番目のクエリを変更して??

どんな助けでも本当に感謝しています!

これが私のクエリです:

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>.  

どういうわけか次のようなXMLを取得できるようにしたいと思います

<Node1>
 <Project>name1
   <Project>name2
      <Project>name3
         <Project>name</Project>
      </Project>
   </Project>
</Project>
<PathName>>name1>>name2>>name3>>name</PathName>
</Node1>

....またはそのようなもの、基本的にはツリー階層を XML に出力できるようにしたいと考えています。

4

1 に答える 1

0

別のものを先頭に追加する<project>代わりに使用してから、疑似列を使用してレベルごとに1つ追加することができます>>level</project>

于 2012-05-11T11:09:23.227 に答える