假设我想生成一部分从表中提取数据的xml,并将这部分放在[cdata]元素中。
例如,假设我生成了这个xml
select xmlelement("TAG1",
xmlelement("TAG2",col2),
xmlelement("TAG3",
xmlelement("TAG4",col4)))
from MYTABLE
其中col2和col4是mytable的列
从而得到如下xml:
<TAG1>
<TAG2> 10 </TAG2>
<TAG3>
<TAG4> England </TAG4>
</TAG3>
</TAG1>
但是现在让我们假设我想要得到这样的东西:
<TAG1>
<TAG2> 10 </TAG2>
<![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TAG3>
<TAG4> England </TAG4>
</TAG3> ]]>
</TAG1>
我该怎么做?我的意思是,即使在这种情况下,我也希望cdata中的部分不是用常量长字符串创建的,而是始终从表中提取数据,并且我希望这个部分在tag3之后关闭
1条答案
按热度按时间s4n0splo1#
可能不是最好的解决方案,这是一个黑客与
REPLACE
.对于固定字符串:
输出:
现在使用列值从
CDATA.MYTABLE.Col5
列。值为StringtoInserttoCDATA.
```select REPLACE(REPLACE(xmlelement("TAG1",
xmlelement("TAG2",col2),
xmlelement("TAGX",
xmlelement("TAG3",
xmlelement("TAG4",col4)))),'</TAGX',']]'),'TAGX','![CDATA[<?xml '||col5)
as xmldataStringInsertedfromcol
from MYTABLE;