我正在尝试解析驻留在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
答案 0 :(得分:1)
试试这个
EXTRACTVALUE(
xmltype(ATTRIBUTE_CONTENT),
'/AttributeContent/ContentElements[1]/ElementValue',
'xmlns="urn:schemas.td.com/ENT/AttributeContent"')