Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL中的XML值返回时带空格_Sql_Xml_Oracle - Fatal编程技术网

Oracle SQL中的XML值返回时带空格

Oracle SQL中的XML值返回时带空格,sql,xml,oracle,Sql,Xml,Oracle,我试图从Oracle数据库中提取XML,并试图在返回值之间添加间距,但遇到了一些问题: XML: <Value>Value1</Value><Value>Value2</Value><Value>Value3</Value> 显示为Value1Value2Value3 它应显示为值1值2值3注意空格 如何执行此操作?对于11g及以上版本,使用xmltable和字符串联接有一种方法: with sample_data as

我试图从Oracle数据库中提取XML,并试图在返回值之间添加间距,但遇到了一些问题:

XML:

<Value>Value1</Value><Value>Value2</Value><Value>Value3</Value>
显示为Value1Value2Value3

它应显示为值1值2值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

这不是有效的XML;没有根节点,破折号是关于什么的?我添加为堆栈溢出站点的破折号会由于括号而隐藏XML值,请忽略它们。我明白了,但这不会发生在代码块中;一旦Orion将其格式化为块,破折号可以/应该被删除。我现在把它们拿出来了。
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