通过Oracle中的Extractvalue进行XML解析,返回null

时间:2016-07-29 00:38:45

标签: xml oracle

我正在尝试解析驻留在Oracle表中的CLOB列中的XML,但它返回null。

我正在尝试从以下XML中检索ElementValue=36

请告知。

<?xml version="1.0" encoding="iso-8859-1"?>
<AttributeContent xmlns="urn:schemas.td.com/ENT/AttributeContent" xmlns:xsdi="http://www.w3.org/2001/XMLSchema-instance" xsdi:schemaLocation="urn:schemas.td.com/ENT/AttributeContent/AttributeContent.xsd">
   <ContentElements>
    <ElementName>value</ElementName>
    <ElementValue>36</ElementValue>  
  </ContentElements> 
  <ContentElements>  
    <ElementName>flag</ElementName>
    <ElementValue>Y</ElementValue>  
  </ContentElements>
 </AttributeContent>

用于解析的SQL:

SELECT  EXTRACTVALUE(xmltype(ATTRIBUTE_CONTENT),'/AttributeContent/ContentElements/Elementvalue[1]')
-- INTO    l_batchCycle     
FROM    fea_com_ctrl.control_attribute 
WHERE   attribute_name = 'BATCH_CYCLE'
and     end_date is null;

表格定义:

ATTRIBUTE_NAME  VARCHAR2(30 BYTE)
EFFECTIVE_DATE  DATE
END_DATE    DATE
ATTRIBUTE_CONTENT   CLOB

1 个答案:

答案 0 :(得分:1)

试试这个

EXTRACTVALUE(
              xmltype(ATTRIBUTE_CONTENT),
              '/AttributeContent/ContentElements[1]/ElementValue',
               'xmlns="urn:schemas.td.com/ENT/AttributeContent"')