Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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从XML中获取列间空格的数据结果_Xml_Oracle - Fatal编程技术网

使用Oracle从XML中获取列间空格的数据结果

使用Oracle从XML中获取列间空格的数据结果,xml,oracle,Xml,Oracle,由于title标签和price标签之间的空间,我希望数据以basics10的形式返回,但是当在Oracle查询中使用extract函数时,我得到的是basics10 当我使用以下查询时: SELECT Extract(column_nam,'//text()').getStringVal() FROM dual; 针对XML,如下所示: <Publishers> <publish> <title>basics</title&

由于title标签和price标签之间的空间,我希望数据以basics10的形式返回,但是当在Oracle查询中使用extract函数时,我得到的是basics10

当我使用以下查询时:

SELECT Extract(column_nam,'//text()').getStringVal() FROM dual;
针对XML,如下所示:

 <Publishers>
   <publish>     
     <title>basics</title> 
     <price>10</price> 
   </publish>
 </Publishers>
当我在查询中使用提取函数时,它会消除所有空格。请给我一些同样的建议


谢谢…

根据您提供的XML,我准备了以下演示代码:

在这里,我将您的数据从XML分离到两列,然后从XMLTYPE表中通过连接函数进行选择

现在两列之间出现空白:基础10

在Oracle10.2中,您可以使用XMLTABLE操作符,它允许您将列投影到XMLTYPE中的XML数据,从而可以直接从SQL查询数据,就像查询关系数据一样


有用:

根据您提供的XML,我准备了以下演示代码:

在这里,我将您的数据从XML分离到两列,然后从XMLTYPE表中通过连接函数进行选择

现在两列之间出现空白:基础10

在Oracle10.2中,您可以使用XMLTABLE操作符,它允许您将列投影到XMLTYPE中的XML数据,从而可以直接从SQL查询数据,就像查询关系数据一样


有用:

请编辑您的问题以修正格式。XML中的空格位于元素之间,而不是实际内容文本的一部分。您真的希望每个文本值在结果集中作为一个单独的列吗?请编辑您的问题以修复格式。XML中的空格位于元素之间,而不是实际内容文本的一部分。您真的希望每个文本值在结果集中作为一个单独的列吗?谢谢您的回答,对不起,我没有清楚地提到这个问题。实际上,我的问题是我刚刚发送了示例XML,但是我的XML将非常大,我只需要从specifictag提取数据。这个xml不会对每个项目都是静态的,它会改变,里面的标记也会改变。我在这里附上示例XML:测试z 0我想从passion_para标记读取数据,passion para之后我在表达式之前有2个空格,而expression标记之后我还有一个空格..等等..当我使用extract query从XMLTYPE列获取passion_para标记时,它消除了所有空格。并给出以下输出:Z0 XML标记可能会在段落_paratag中更改..XML不是静态的..请在这方面寻求帮助…@Saritha-包括所有这些澄清。还要解释一下,如果标签可能会改变,你如何知道你想要哪些标签的文本,以及以什么顺序?谢谢你的回答,对不起,我没有清楚地提到这个问题。实际上,我的问题是我刚刚发送了示例XML,但是我的XML将非常大,我只需要从specifictag提取数据。这个xml不会对每个项目都是静态的,它会改变,里面的标记也会改变。我在这里附上示例XML:测试z 0我想从passion_para标记读取数据,passion para之后我在表达式之前有2个空格,而expression标记之后我还有一个空格..等等..当我使用extract query从XMLTYPE列获取passion_para标记时,它消除了所有空格。并给出以下输出:Z0 XML标记可能会在段落_paratag中更改..XML不是静态的..请在这方面寻求帮助…@Saritha-包括所有这些澄清。还要解释一下,如果标签可能会改变,你如何知道你想要哪些标签的文本,以及它们的顺序?
  WITH demo AS (
   SELECT XMLTYPE (
     '<Publishers>
       <publish>     
         <title>basics</title> 
         <price>10</price> 
       </publish>
     </Publishers>') XML
   FROM dual)
    SELECT XML.title || ' ' || XML.price
    FROM demo dm,
         xmltable('/Publishers/publish' passing dm.XML
                    COLUMNS  title VARCHAR2(50) path 'title',
                             price VARCHAR2(4) path 'price') XML;