【问题标题】:Read an XML stored in Oracle DB in CLOB Data type [duplicate]以 CLOB 数据类型读取存储在 Oracle DB 中的 XML [重复]
【发布时间】:2021-08-25 11:20:50
【问题描述】:

我正在尝试从存储在 Oracle DB 中的 clob 数据类型中的 XML 格式读取值。 从下面存储在 CLOB 列中的 XML 我想读取特定值,例如“entityFldType="uid"” 谁能帮我处理 SQL

"d258b8c7-fa47-49d4-a28c-f779d39" xmlns:even="http://www.cos.com/EDA/Event100">
<Body userId="administrator" entityType="USER" internalId="uid=usertest1,ou=People,dc=abcde,dc=medical,dc=com" datasource="LAP">
    <Field entityFldType="uid">
        <value>usertest1</value>
    </Field>
    <Field entityFldType="userPassword">
        <value>********</value>
    </Field>
    <Field entityFldType="telephoneNumber">
        <value>000 00000/55555</value>
    </Field>
    <Field entityFldType="employeeType">
        <value>active</value>
    </Field>
    <Field entityFldType="mail">
        <value>usertest1@coz.com</value>
    </Field>
    <Field entityFldType="initials">
        <value>a</value>
    </Field>
    <Field entityFldType="objectClass">
        <value>top</value>
    </Field>
    <Field entityFldType="sn">
        <value>qa</value>
    </Field>
    <Field entityFldType="cn">
        <value>qa</value>
    </Field>
</Body>

事件>

【问题讨论】:

  • 你需要使用Xpath

标签: sql oracle


【解决方案1】:

您的 XML 有点混乱,但一种简单的方法是转换为 XMLTYPE,它可以打开许多 XMLDB 功能。所以你会有一些类似的东西:

select 
  extractvalue(my_xml, '/body/field/text()') tag_value,
  extractvalue(my_xml, '/body/field/@entityFldType') attr_value
from ( select xmltype(clob) my_xml from your_table )

【讨论】:

猜你喜欢
  • 2015-12-24
  • 2011-12-30
  • 2011-06-20
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多