Oracle 的 xmlserializer 中的尾随空格
trailing spaces in Oracle's xmlserializer
我在 oracle sqlplus 查询中使用 XMLSerializer 进行 linux 作业。在 SQLDeveloper 命令选项卡上,一切看起来都很好,但在 linux 上,我看到 xml 输出尾随 space:
${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 命令来删除尾随的 spaces 但这似乎是症状斗争。
这并不是真正的 XMLSerialize()
调用,它是假脱机数据的默认行为。
在您的脚本中,添加:
SET TRIMSPOOL ON
From the SQL*Plus documentation:
SET TRIMS[POOL] {ON | OFF}
Determines whether SQL*Plus puts trailing blanks at the end of each spooled line. ON
removes blanks at the end of each line. OFF
enables SQL*Plus to include trailing blanks.
交互式会话有一个等效项 SET TEIMOUT ON
,如果您要重定向输出而不是假脱机输出,这很有用。
我在 oracle sqlplus 查询中使用 XMLSerializer 进行 linux 作业。在 SQLDeveloper 命令选项卡上,一切看起来都很好,但在 linux 上,我看到 xml 输出尾随 space:
${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 命令来删除尾随的 spaces 但这似乎是症状斗争。
这并不是真正的 XMLSerialize()
调用,它是假脱机数据的默认行为。
在您的脚本中,添加:
SET TRIMSPOOL ON
From the SQL*Plus documentation:
SET TRIMS[POOL] {ON | OFF}
Determines whether SQL*Plus puts trailing blanks at the end of each spooled line.
ON
removes blanks at the end of each line.OFF
enables SQL*Plus to include trailing blanks.
交互式会话有一个等效项 SET TEIMOUT ON
,如果您要重定向输出而不是假脱机输出,这很有用。