如何使用oracle查询显示XMLTYPE列中的文本,包括空格

时间:2017-08-30 17:02:11

标签: oracle

我有XML数据类型列,其中包含以下数据,我想从下面的XML中提取数据,包括标记之间的空格。在math_expression之后有一个这样的空格之后也有一个空格。 当我使用Extract函数从下面的XML中提取数据时,它正在消除空格。

示例XMLTYPE数据列:

<quantity_a> <math_expression> <math display="inline" overflow="scroll"> <mrow> <mn>3</mn> <mi>x</mi> <mo>+</mo> <mn>2</mn> 
</mrow> </math> </math_expression> </quantity_a>

我想要的输出是: &#34; 3 X + 2&#34;

感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

String-join - 说明
/quantity_a/math_expression/math/mrow/* - 它从mrow节点返回所有元素。

select xmlquery('string-join( /quantity_a/math_expression/math/mrow/*/text()," ")' passing xmltype('<quantity_a> 
<math_expression> 
<math display="inline" overflow="scroll"> 
<mrow> <mn>3</mn> <mi>x</mi> <mo>+</mo> <mn>2</mn> 
</mrow> </math> </math_expression> </quantity_a>') returning content )  from dual;