2015-03-03 67 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