2015-03-03 68 views
0

我试图拉XML列的Oracle数据库中,我试图返回的值之间添加间距,但我有一些问题:XML值返回使用空格

的XML:

<Value>Value1</Value><Value>Value2</Value><Value>Value3</Value> 

的SQL:

SELECT xmltype(test.values).EXTRACT('/Value/text()').getStringVal() AS "Test Values", 
FROM test 

出来作为Value1Value2Value3

它建议立即进行删除d出来作为Value1 Value2 Value3(注意空格)

我该如何去做这件事?

+1

这不是有效的XML;没有根节点,什么是破折号? – 2015-03-03 10:13:46

+0

我添加为Stack Overflow站点的破折号会因<>括号隐藏XML值,请忽略它们。它应该只是。 – user4626966 2015-03-03 10:56:20

+0

我明白了,但是这不会发生在代码块中;一旦Orion将其格式化为块,破折号可能/应该已被删除。我已经把它们拿出来了。 – 2015-03-03 11:02:49

回答

3

这里有一种方法(为11g和以上),使用XMLTABLE和字符串连接:

with sample_data as (select xmltype('<root><value>Value1</value><value>Value2</value><value>Value3</value></root>') x from dual) 
select x.result 
from sample_data sd, 
     xmltable('string-join(/root/value, " ")' passing sd.x 
       columns result varchar2(4000) path '.') x; 

RESULT 
-------------------- 
Value1 Value2 Value3