sql - 使用来自 Oracle 数据库的 SQL 从 XML Clob 中提取数据

标签 sql xml oracle parsing clob

我想使用 sql 从具有列 testclob 的表 TRAPTABCLOB 中提取 Decision 的值,其中 XML 存储为 clob。

XML 示例如下。

        <?xml version="1.0" encoding="UTF-8"?>
<DCResponse>
    <Status>Success</Status>
    <Authentication>
        <Status>Success</Status>
    </Authentication>
    <ResponseInfo>
        <ApplicationId>5701200</ApplicationId>
        <SolutionSetInstanceId>
                        63a5c214-b5b5-4c45-9f1e-b839a0409c24
                    </SolutionSetInstanceId>
        <CurrentQueue />
    </ResponseInfo>
    <ContextData>
        <!--Decision Details Start-->
        <Field key="SoftDecision">A</Field>
        <Field key="**Decision**">1</Field>
        <Field key="NodeNo">402</Field>
        <Field key="NodeDescription" />
        <!--Decision Details End-->
        <!--Error Details Start-->
        <Field key="ErrorResponse">
            <Response>
                <Status>[STATUS]</Status>
                <ErrorCode>[ERRORCODE]</ErrorCode>
                <ErrorDescription>[ERRORDESCRIPTION]</ErrorDescription>
                <Segment>[SEGMENT]</Segment>
            </Response>
        </Field>
        <Field key="ErrorCode">0</Field>
        <Field key="ErrorDescription" />
    </ContextData>
</DCResponse>

最佳答案

尝试

SELECT EXTRACTVALUE(xmltype(testclob), '/DCResponse/ContextData/Field[@key="Decision"]') 
FROM traptabclob;

Here是一个 sqlfiddle 演示

关于sql - 使用来自 Oracle 数据库的 SQL 从 XML Clob 中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600480/

相关文章:

sql - sql中将多列合并为一列

java - JDBC 关键字 WHERE 附近的语法不正确

sql - 我应该添加主键列作为 Oracle RDBMS 中索引的最后一列吗?

java - 如何在TabLayout中包裹单个选项卡宽度?

java - 为什么Java的FileInputStream read()带参数,而Oracle的文档却说不带参数?

sql - PostgreSQL - 从列表中查找表中不存在的 ID

android - Android 阿拉伯字母的 keyCodes

c# - 使用 LINQ to XML 更新子树中的 XML 属性

sql - 插入带有列列表的并行 DML

sql - Oracle PL/SQL 中的 For In 循环