html报表或者xml里面的&字符替换写法

Caused by: org.xml.sax.SAXParseException: <Line 11742, Column 27>: XML-20201: (Fatal Error) Expected name instead of .
我让客户dba把output文件发出来了,发现11742行有点特殊,如下:

<CUST_NAME>BERGENSTRAHLE & LINDVALL</CUST_NAME>
因此错误的原因就是输出内容中有&符号


解决办法是将&符号变成&amp,但是不能在代码里直接用&符号,而应该使用chr(38),转换语句应该是:
REPLACE(可能存在&符号的字符串, chr(38), chr(38) || 'amp'))
这样就可以避免报错了。
相似的可能引发问题的xmp报表中不能使用的字符和需要被替换成的字符如下:
&lt; < 小于 
&gt; > 大于 
&amp; & 和号 
&apos; ' 省略号 
&quot; " 引号

方法二:

select dbms_xmlgen.convert(xmlData => 'AB&BB11&')
from dual

posted @ 2021-05-11 23:40  Deo2021  阅读(433)  评论(0)    收藏  举报