如何在 PLSQL 中获取值 XML blob 类型?

How to get value XML blob type in PLSQL?

我有这样的数据 XML 格式。

<"id=1">
   <"a">Test<"/a">
   <"b">Test2<"/b">
   <"c">Test3<"/c">

如何获取字段XML数据中的值C?

*value C is Test3

How to get value C in field XMLData?

如@Wernfried Domscheit 所述,您的 xml 看起来不正确。请参阅下面的一种方法:

create table traptabclob(testclob clob);
/

insert into traptabclob 
values
('<?xml version="1.0" encoding="UTF-8"?>
<DCResponse>
 <id>
   <Field key="a">Test</Field>
   <Field key="b">Test2</Field>
   <Field key="c">Test3</Field> 
  </id>                            
</DCResponse>');
/

查询:

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

输出:

Col1
----
Test3

DEMO

编辑:

Thank you for your reply, my data doesn't has tag <?xml> version="1.0".... my data just like <row> id="1"><a>Test</a><b>Test2</b></row>, it is looks like xml type but i dont know this is xml type or not. Thank you

请注意,我刚刚给出了一个有效 xml 文件的示例,其中通常包含 <?xml> version="1.0"....。然而,您的 xml 代码的问题是将标签放入 "。请参阅下面的工作原理:

create table traptabclob(testclob clob);
insert into traptabclob values('
 <id>
   <a>Test</a>
   <b>Test2</b>
   <c>Test3</c> 
  </id>');

查询:

SELECT EXTRACTVALUE(xmltype(testclob), '/id/c') col1 
FROM traptabclob ;

输出:

Col1
----
Test3

DEMO 1