从oracle中的表中获取Xml内容

时间:2014-12-10 10:30:18

标签: sql xml oracle oracle11g

这是我的XML内容存储,与列名称相同,#34; Xml_Column"在表格中" TEST_TABLE"并且列的数据类型是clob。

<ns0:TEST_EVENTS xmlns:ns0="http://TEST.APPLICATION.ABC.Schemas.XML_Target_TESTEvents">
   <compname>Sherlock</compname>
        <Add>Homes</Add>
    <Employee>
        <firstname>Jim</firstname>
        <lastname>Moriarty</lastname>
        <age>52</age>
        <email>jim@sh.com</email>
    </Employee>
</ns0:TEST_EVENTS>

我的要求是从此列中获取存储和显示我的xml内容的名字和姓氏。任何帮助

2 个答案:

答案 0 :(得分:0)

使用EXTRACTVALUE,这是一种最简单的方法:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions052.htm

为了优化,你应该根据你的clob进行构造XMLType实例的内部查询;在外部查询中使用EXTRACTVALUE来选择你想要的每个值。

答案 1 :(得分:0)

例如:

  SELECT extractValue(OBJECT_VALUE, '/firstname'),
         extractValue(OBJECT_VALUE, '/lastname')
         FROM TEST_TABLE;

所有名字和姓氏:

SELECT  XMLQuery('for $d in /Employee
             return ($d/firstname/text(),$d/lastname/text())
            PASSING OBJECT_VALUE
            RETURNING CONTENT) FROM TEST_TABLE;