在oracle中格式化xmltype的数据

在oracle中格式化xmltype的数据,oracle,oracle11g,xmltype,Oracle,Oracle11g,Xmltype,我对oracle中的XML非常陌生,我有一个非常简单的要求 我有一个函数,它返回XMLTYPE数据作为 e、 g 我想显示与相同的内容 FIRST CHECK DATA SECOND CHECK DATA THIRD CHECK DATA 如何在行之间提供换行符或添加空格 我不想将数据保存在任何表中。作为可以使用函数的方法之一,该函数返回顶级节点的集合,然后应用以获取实际节点值。作为另一种方法,也是更可取的方法(从oracle 11gr2开始,该方法已被弃用),您可以使用以下函数: 下面是

我对oracle中的XML非常陌生,我有一个非常简单的要求

我有一个函数,它返回XMLTYPE数据作为 e、 g

我想显示与相同的内容

FIRST CHECK DATA

SECOND CHECK DATA

THIRD CHECK DATA
如何在行之间提供换行符或添加空格


我不想将数据保存在任何表中。

作为可以使用函数的方法之一,该函数返回顶级节点的集合,然后应用以获取实际节点值。作为另一种方法,也是更可取的方法(从oracle 11gr2开始,该方法已被弃用),您可以使用以下函数:

下面是一个简单的函数,它返回
XMLType
数据类型的数据:

SQL> create or replace function GetXML return xmltype
  2  is
  3  begin
  4    return xmltype('<ROWSET>
  5                      <ROW>
  6                        <RCODE>FIRST CHECK DATA</RCODE>
  7                      </ROW>
  8                      <ROW>
  9                        <RCODE>SECOND CHECK DATA</RCODE>
 10                      </ROW>
 11                      <ROW>
 12                        <RCODE>THIRD CHECK DATA</RCODE>
 13                      </ROW>
 14                    </ROWSET>');
 15  end;
 16  /

Function created  
结果:

RCODE
--------------------
FIRST CHECK DATA
SECOND CHECK DATA
THIRD CHECK DATA
 RCODE
 ---------------------
 FIRST CHECK DATA
 SECOND CHECK DATA
 THIRD CHECK DATA
  • 使用
    XMLTable()

    结果:

    RCODE
    --------------------
    FIRST CHECK DATA
    SECOND CHECK DATA
    THIRD CHECK DATA
    
     RCODE
     ---------------------
     FIRST CHECK DATA
     SECOND CHECK DATA
     THIRD CHECK DATA
    
  • select Rcode
      from xmltable('/ROWSET/ROW/RCODE'
                      passing getxml columns Rcode varchar2(21) path '/RCODE')
    
     RCODE
     ---------------------
     FIRST CHECK DATA
     SECOND CHECK DATA
     THIRD CHECK DATA