从自引用 Oracle 表生成 XML
Posted
技术标签:
【中文标题】从自引用 Oracle 表生成 XML【英文标题】:Generating XML from self referencing Oracle table 【发布时间】:2011-01-10 15:35:58 【问题描述】:我有一个 Oracle 数据库,其中包含一个名为“服务”的分层医疗数据的自引用表。
服务
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 结构的最佳方法是什么?
【问题讨论】:
【参考方案1】:This example 使用 DBMS_XMLGEN.newContextFromHierarchy
看起来与您尝试执行的操作非常相似。
【讨论】:
以上是关于从自引用 Oracle 表生成 XML的主要内容,如果未能解决你的问题,请参考以下文章