首页 > 解决方案 > 从 CLOB XML 列中提取值

问题描述

我有一个表,其中一列是 CLOB 类型,它具有 XML 格式的数据。

我正在尝试提取 CreatedByUserID 的值,在下面的示例中为 7934665。

我尝试在 Oracle 中使用 XPATH 和 extractvalue 函数执行此操作,但由于某种原因我没有得到结果。

尝试以下方法之一。xmltype(Column_Name).extract('//EventPayloadDetails/ns3:PayloadDetailsList/ns3:PayloadDetail/ns3:key/text()').getStringVal()

它说 LPX-00601: Invalid token in。你能帮我解决这个问题吗?

列值

<EventPayloadDetails 
  xmlns:bpmn="http://schemas.oracle.com/bpm/xpath" 
  xmlns:ns3="urn:qi.com/EventPayloadDetails"  
  xmlns="urn:qi.com/EventPayloadDetails">
    <ns3:PayloadDetailsList>
        <ns3:PayloadDetail>
            <ns3:key>NUMBER</ns3:key>
            <ns3:value>0014</ns3:value>
        </ns3:PayloadDetail>
        <ns3:PayloadDetail>
            <ns3:key>Dep Num</ns3:key>
            <ns3:value>120</ns3:value>
        </ns3:PayloadDetail>
        <ns3:PayloadDetail>
            <ns3:key>CreatedByUserID</ns3:key>
            <ns3:value>7934665</ns3:value>
        </ns3:PayloadDetail>
        <ns3:PayloadDetail>
            <ns3:key>CreatedByFirstName</ns3:key>
            <ns3:value>M</ns3:value>
        </ns3:PayloadDetail>
        <ns3:PayloadDetail>
            <ns3:key>CreatedByLastName</ns3:key>
            <ns3:value>Ash</ns3:value>
        </ns3:PayloadDetail>
        <ns3:PayloadDetail>
            <ns3:key>Comments</ns3:key>
            <ns3:value>"Review after this 
query"
</ns3:value>
        </ns3:PayloadDetail>
    </ns3:PayloadDetailsList>
</EventPayloadDetails>

标签: xmloraclexpath

解决方案


请尝试以下 XPath:

//EventPayloadDetails/ns3:PayloadDetailsList/ns3:PayloadDetail[ns3:key='CreatedByUserID']/ns3:value/text()

推荐阅读