Oracle 10G中的缩进/格式/漂亮类型XML

时间:2015-08-27 18:17:20

标签: xml oracle

查询:
    我需要创建一个XML(在Oracle中)并存储在表中(CLOB格式)。我在一个完整的行中获取XML而不是格式化的方式(在我检查的一些地方提到的Pretty Print方式)。

代码:

SELECT ( 
XMLElement("Organization",
                XMLAttributes (ROWNUM AS "ROWNUM"),
                XMLForest
                (
                    'Test'  col1 ,
                    'Test2' col2,
                    'Test3' col3
                )
                ))
 AS xmlResult
 -- into v_xmlResult  
    FROM DUAL ;

现有结果:

<Organization ROWNUM="1"><COL1>Test</COL1><COL2>Test2</COL2><COL3>Test3</COL3></Organization>

预期结果:

<Organization ROWNUM="1">
    <COL1>Test</COL1>
    <COL2>Test2</COL2>
    <COL3>Test3</COL3>
</Organization>

约束:     无法使用dbms_xmlgen.getxml,因为它是现有代码并且包含大量逻辑。

尝试解决方案:

select xml serialize(v_xmlResult) from dual;

如果有重复的问题(请回答此问题),请告诉我。

1 个答案:

答案 0 :(得分:2)

尝试在最后添加EXTRACT('*')

SELECT ( 
  XMLElement("Organization",
                XMLAttributes (ROWNUM AS "ROWNUM"),
                XMLForest
                (
                    'Test'  col1 ,
                    'Test2' col2,
                    'Test3' col3
                )
                )).EXTRACT('*')
 AS xmlResult
 -- into v_xmlResult  
    FROM DUAL ;

我曾经向某人提出过这个问题,这对他有用。不幸的是,我无法访问Oracle 10g并且无法检查它。希望它也适合你。

如果您无法修改代码,请尝试:

select v_xmlResult.EXTRACT('*') from dual;