Oracle xmlserializer中的尾随空格

问题描述 投票:2回答:1

我在oracle sqlplus查询中使用XMLSerializer来执行linux作业。在SQLDeveloper命令选项卡上一切都很好但在linux上我看到xml输出被空格跟踪:

${ORAPLUS} -s /@tns_entry <<_ORALINE
--WHENEVER OSERROR  EXIT 1
WHENEVER SQLERROR EXIT SQL.SQLCODE
SET TERM OFF
SET SHOW OFF
SET FEEDBACK OFF
SET HEADING OFF
SET HEAD OFF
SET PAGESIZE 0
set linesize 180
--set wrap on
set long 100000
SET LONGCHUNKSIZE 100000
SPOOL ${SPOOLFILE} APPEND
select xmlserialize(content xmlelement( "parent", xmlelement("child", 
       xmlelement("child-of-child", 'value'))) indent size=2) from dual;
SPOOL OFF
EXIT 0
_ORALINE

输出:

<parent>                                                                                                                                                                     
  <child>                                             How do I get rid of the spaces here?                                                                                                                    
    <child-of-child>value</child-of-child>                                                                                                                                   
  </child>                                                                                                                                                                   
</parent> 

当然,我可以运行post-pretty-up命令来删除尾随空格,但这似乎是症状的斗争。

xml oracle xml-serialization
1个回答
4
投票

这不是真正的XMLSerialize()调用,这是假脱机数据的默认行为。

在您的脚本中,添加:

SET TRIMSPOOL ON

From the SQL*Plus documentation

SET TRIMS [POOL] {ON | OFF}

确定SQL * Plus是否在每个假脱机行的末尾放置尾随空白。 ON删除每行末尾的空白。 OFF使SQL * Plus能够包含尾随空白。

有一个等价的交互式会话,SET TEIMOUT ON,如果你重定向输出而不是假脱机,这是很有用的。

© www.soinside.com 2019 - 2024. All rights reserved.