2011-01-10 27 views
2

我有一個帶有稱爲「服務」的分層醫療數據自引用表的Oracle DB。從自引用Oracle生成XML表

服務

的service_id ----------數
服務名----- VARCHAR2(200)
service_parent ---數

,其中每個服務可以有1個父母服務以及n個孩子。 「頂級」服務的service_parent值爲零。

我需要從這些數據生成一個XML結構。我瀏覽了網頁,但似乎無法找到這種XML代的例子。 這是XML輸出我需要的例子:

<services> 
    <service id="1" name="Medicine"> 
     <service id="10" name="Anesthesia"> 

     </service> 
    </service> 
    <service id="2" name="Surgery"> 
     <service id="3" name="Cardiology"> 
      <service id="4" name="Bypass"> 

      </service> 
      <service id="5" name="Transplant"> 

      </service> 
      <service id="6" name="Valve Replacement"> 

      </service> 
     </service> 
     <service id="9" name="Ear Nose Throat"> 
      <service id="7" name="Laryngectomy"> 

      </service> 
      <service id="8" name="Septoplasty"> 

      </service> 
     </service> 
    </service> 
</services> 

我使用CONNECT_BY_ISLEAF,CONNECT_BY_PATH試過,CONNECT BY PRIOR,等...但我可以得到最接近它是:

<services> 
<service id="1" name="Medicine" /> 
<service id="10" name="Anesthesia" /> 
<service id="2" name="Surgery" /> 
<service id="3" name="Cardiology" /> 
<service id="4" name="Bypass" /> 
<service id="5" name="Transplant" /> 
<service id="6" name="Valve Replacement" /> 
<service id="9" name="Ear Nose Throat" /> 
<service id="8" name="Laryngectomy" /> 
<service id="7" name="Septoplasty" /> 
</services> 

上面得到XML結構的最佳方式是什麼?

回答

2

This example使用DBMS_XMLGEN.newContextFromHierarchy看起來很像你想要做的事情。