如何在PLSQL中获得值blob类型?

时间:2018-03-07 07:28:08

标签: xml oracle plsql plsqldeveloper

我有这样的数据XML格式。

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

如何在字段XMLData中获取值C?

*value C is Test3

1 个答案:

答案 0 :(得分:1)

  

如何在字段XMLData中获取值C?

如@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

修改

  

感谢您的回复,我的数据没有标记<?xml> version="1.0"....我的数据就像<row> id="1"><a>Test</a><b>Test2</b></row>一样,它看起来像xml类型,但我不知道这是{{1是不是类型。谢谢

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

"

查询:

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 ;

DEMO 1